2011-12-08 71 views
1

我知道你可以插入新項目到你的SQL數據庫(LINQ to SQL,由SQLMetal.exe生成的代碼)。您可以在實體表中使用Attach方法附加新項目,並且不能,或者您可以編輯現有記錄。LINQ to SQL CRUD(插入特定) - 插入多個項目

現在,讓我們說,而不是一個新的實體,你會得到很多 - 其中一些可能已經存在於表內。有一個主鍵,但可能在集合中可能會有一些更改的記錄,所以主鍵可能不會是確定更改內容的最佳方法。

我是否需要查看LINQ表中的每條記錄,然後將其所有列數據與相關集合中實體的所有列數據進行比較?這會告訴我哪些是新的,哪些有變化,哪些可以丟棄。這似乎是一個非常漫長的做法。

有沒有更簡單的方法?

謝謝。

+0

他們稱之爲UPSERT,但在LINQ to SQL中,你必須[推出自己的(http://stackoverflow.com/questions/637225/how-would-you-write-an-upsert -for-linq-to-sql) – sq33G

回答