Свойство таблицы нарушено после C # Типизированный DataSet Copy () - PullRequest
0 голосов
/ 20 июля 2011

У меня есть типизированный набор данных с несколькими таблицами, которые я хочу скопировать, вместе с данными и схемой.Я могу получить доступ к таблицам так же, как и в моем оригинале:

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 (), чтобы сохранить именованный доступ к таблицам?

1 Ответ

0 голосов
/ 20 июля 2011

Я предполагаю, что ваш вызов Copy возвращает нетипизированный DataSet (хотя я не уверен, почему вы не получите ошибку компилятора).

Попробуйте изменить строку, по которой вы звоните Copy на эту:

dsMySecondDataSet = (MyDataSetType) dsMyFirstDataSet.Copy();
...