Имейте типизированный набор данных с несколькими связанными таблицами и отношениями, определенными между этими таблицами. При обработке потока данных я добавляю, изменяю и удаляю записи, а затем вызываю update для каждой таблицы.
Requests Reapprovals UserRole
RequestId ----- RequestId ----- RoleId
Reason RoleId ----/ UserId
Причина использования типизированного набора данных заключается в том, что я должен проверить существующие данные, чтобы определить, добавляю ли я, изменяю или удаляю записи ... поэтому мне нужен полный дамп всего, с чем я работаю (альтернатива было бы 10000 запросов к базе данных, когда я обрабатываю записи одну за другой).
Мне нужна поддержка транзакций, но я не вижу способа сделать это с типизированными наборами данных. Например, я создаю новый запрос, когда создаю новое повторное утверждение. Но если повторное утверждение не обновляется, я не хочу сохранять запрос.
Помещение вызовов обновления под TransactionScope
будет означать, что если какая-либо запись не удастся, все они потерпят неудачу. Не то, что я хочу.
Как мне зафиксировать или откатить связанные строки в наборе типизированных данных?