Как использовать DataSet.Merge, когда Identity является primary key

6yrop

Как обновлять DataSet на клиенте? Схема описанная в MSDN
1. GetChanges
2. dataAdapter.Update
3. Merge
не работает, когда Identity является primary key, поскольку метод Merge основывается на primary key.

xz_post

Добавь еще одно поле с автоинкрементом и сливание в Мерге делай по нему. Возможно придется временно менять primary key в таблице (это мсдн советовал ). Или расширить стаднартный DS.Merge (я так и сделал - в нашем случае после вставки новой строки в базу с сервера приходили только новые id и stamp-ы)

6yrop

это мсдн советовал

можно поточнее ссылку (идея понятна, но хочется это посмотреть в мсдн )
Или расширить стаднартный DS.Merge (я так и сделал - в нашем случае после вставки новой строки в базу с сервера приходили только новые id и stamp-ы)

можно об этом тоже по подробнее, какой DataSet возвращался сервером? т.е. какой DataSet подставлялся в аргумент нового Merge
P.S. вообще, то что тут нужен идентификатор строки сразу чувствуется, почему Microsoft не ввела его внутрь DataSet-а не понятно, т.е. это все должно делаться самим DataSet-ом, а майкрософтовцы переложиди это на пользователя-программиста

xz_post

можно поточнее ссылку (идея понятна, но хочется это посмотреть в мсдн )
Это написано вкниге Сеппы ADO.NET
можно об этом тоже по подробнее, какой DataSet возвращался сервером? т.е. какой DataSet подставлялся в аргумент нового Merge
Обычный датасет после DataAdapter.Update(DS) и его очистки от лишних данных, которые уже есть на клиенте. Он содердит STAMP, NEW_ID (новые ID сгенерированные серваком) и OLD_ID (с отрицательными значениями, полученными в результате автоинкремента) и некоторых других - сделано было для уменьшения трафика + мы юзали сурогатные датасеты). Мерге я делал по OLD_ID для чего его и пришлось переписать (без 2 вложенных for...) .Изменять Primary_key было без мазы - в Датасете несколько связанных таблиц...

6yrop

Изменять Primary_key было без мазы - в Датасете несколько связанных таблиц...

вот вот, я тоже хотел вчера это заметить

6yrop

Сеппы ADO.NET

поточнее название можно? оно английское? я не понял что такое "Сеппы"?

rosali

я не понял что такое "Сеппы"?

Автор?

6yrop

точно , google нашел

slonishka

Как обновлять DataSet на клиенте? Схема описанная в MSDN
1. GetChanges
2. dataAdapter.Update
3. Merge
не работает, когда Identity является primary key, поскольку метод Merge основывается на primary key.

Обновляй DataSet через Insane Identifity на рабочей машине. Методы получения primary key, описанные в MSDN работают не согласно Secondary Face.

6yrop

что такое "Insane Identifity" и "Secondary Face".
Что такоет "рабочая машина"? (речь идет не о получении Identity из SQL Server-а)
Оставить комментарий
Имя или ник:
Комментарий: