有一個類型化數據集,其中包含多個相關表以及在這些表之間定義的關係。當我處理數據饋送時,我正在添加,修改和刪除記錄,然後在每個表上調用更新。類型化數據集中的事務
Requests Reapprovals UserRole
RequestId ----- RequestId ----- RoleId
Reason RoleId ----/ UserId
之所以使用強類型DataSet的是,我要檢查現有數據,以確定我是否添加,修改或刪除的記錄,所以,我需要的一切的完全轉儲我的工作(隨着我逐一處理記錄,替代方案將是對數據庫的10,000個查詢)。
我想要事務性支持,但我沒有看到用類型化數據集的方式。例如,當我創建新的重新批准時,我正在創建一個新請求。但是,如果重新批准更新失敗,我不想保留請求。
將更新調用置於TransactionScope
意味着如果任何記錄失敗,它們都會失敗。不是我想要的。
我該如何提交或回滾類型化數據集中的相關行?
它可能感興趣你知道,在表上調用Update不,事實上,發送N次查詢到數據庫,一個用於您要更新的每個記錄/添加/除去。所以,通過調用表上的Update或每次更改單行時調用Update,您都不會獲得太多好處。 (使用「批量」發送選項可能會帶來一些好處,但我不知道它有多大)因此,儘管您確實可以使用完整的內存轉儲來確定要修改哪些記錄,但我建議將每個系列操作在自己的交易範圍內進行記錄。 – Pandincus 2010-12-20 15:52:26
知道行一次更新一個,並且在我修改它們時考慮每次更新一行......對我進行調整的事情是我在表上調用Update(),它檢查每行以查看是否它需要更新。這意味着我正在迭代10,000多行10,000次以找到已更新的一行。不知道這樣的表現會是巨大的還是微不足道的。 – 2010-12-20 18:51:56
Pandincus>如果你想輸入你所說的答案,我會接受它。看起來我的選擇要麼是按照你的建議採取行動,要麼接受/拒絕整體數據集更改:(謝謝! – 2011-01-01 19:28:40