2009-02-12 84 views
2

這可能有點天真,但我只是想檢查一下我的做法是否正確。 我從UI接收對象的集合。 然後我希望檢查這些對象與數據庫中的記錄。將集合更新爲db

這是我正在做的創建更新和刪除接收的對象。

  1. 循環槽接收到的對象 - 如果 (id == 0)創建新記錄。
  2. 從數據庫中檢索現有記錄;
  3. 循環現有記錄 - 其中 (現有記錄ID ==收到 對象ID)更新記錄。
  4. 如果 記錄存在於現有的 記錄中,但不存在於接收的 對象中 - 刪除。

這似乎是最合乎邏輯的方法。我正在使用NHibernate,有點想知道是否有另一種方式,我應該看看。 任何幫助非常感謝。

回答

1

以我的回答來看它的價值;我說你的邏輯是堅實的。

0

如果您確實使用SQL Server 2008(或者可以選擇使用它),那麼基本上會有一個新的「MERGE」語句。

在這種情況下,您可以將所有數據寫入臨時表(內存或磁盤),然後使用單個MERGE語句更新並將數據插入到目標表中。

這裏是SQL Server 2008中的MERGE一些信息的帖子: