Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Merge меняет значение, хотя состояние unchanged


Автор: Karrde 18.7.2013, 12:43
Доброго времени суток. Пытаюсь смержить два объекта, наследованных от dataset. 
Код

dataSetFromDisk.Merge(dataSet);

Одна из строк dataSet имеет состояние Unchanged, аналогичная строка dataSetFromDisk - состояние Added. После слияния значение в dataSetFromDisk меняется на значение, указанное в dataSet. Так и должно быть? Как этого можно избежать?

Автор: dzaraev 18.7.2013, 13:52
Не часто работал с DataSet, но судя по http://msdn.microsoft.com/en-us/library/4swwh51k(v=vs.100).aspx, это видимо так и должно быть:
Цитата

...When merging a new source DataSet into the target, any source rows with a DataRowState value of Unchanged, Modified, or Deleted are matched to target rows with the same primary key values. Source rows with a DataRowState value of Added are matched to new target rows with the same primary key values as the new source rows.

Пусть меня поправят, если заблуждаюсь.

Автор: Karrde 24.7.2013, 15:32
Не уверен, что решил правильно, но тем не менее у меня заработало. Сначала получил DataSet изменений с помощью GetChanges(). А потом уже его смержил с dataSetFromDisk - получилось ровно то, что я хотел

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)