У меня есть типизированный DataSet с несколькими таблицами, которые я хочу скопировать, вместе с данными и схемой. Я могу получить доступ к таким таблицам в моем оригинале:
MyDataSetType dsMyFirstDataSet;
MyDataTableType dtTable1;
MyDataTableType dtTable2;
dtTable1 = dsMyFirstDataSet.MeaningfulTableName1;
dtTable2 = dsMyFirstDataSet.MeaningfulTableName2;
Когда я делаю следующее, я больше не могу получить доступ к таблицам по именам в новой версии, но могу через коллекцию таблиц.
MyDataSetType dsMySecondDataSet;
dsMySecondDataSet = dsMyFirstDataSet.Copy();
dtTable1 = dsMySecondDataSet.MeaningfulTableName1; // null
dtTable2 = dsMySecondDataSet.MeaningfulTableName2; // null
dtTable1 = dsMySecondDataSet.Tables[0]; // table not null/copied ok
dtTable2 = dsMySecondDataSet.Tables[1]; // table not null/copied ok
В настоящее время я обращаюсь к ним через индекс, как во втором примере, но мне интересно, почему ссылка на именованную таблицу была разорвана? Должен ли я писать свой собственный метод Copy(), чтобы сохранить именованный доступ к таблицам?