2011-11-13 99 views
0

我需要更新現有記錄在LINQ如果記錄存在elese添加一個新的。 將saveChanges()適用於兩者?如果是的話,如何區分更新和插入。 在此先感謝。LINQ的更新現有記錄

+0

你爲什麼要在兩者之間進行區分? – Christian

回答

0

中的LINQ一般是查詢不進行修改(它代表了語言集成查詢全部) - 最好你不希望創建任何副作用。更新和插入的不同之處在於,對於更新,您通常必須查詢現有記錄以更好地進行更新。更新 - 只需將其添加即可插入。並且是SaveChanges()將適用於兩者,因爲它會將您的更改和附加內容提交到底層數據存儲。

你提的問題非常廣泛 - 不,你是用它很難奮力給出更詳細的解答特定代碼。

+0

該OP是關於LINQ to Entities(或LINQ to SQL),儘管名稱相似但不是查詢框架,但它們是一個ORM。 – sq33G

+0

LINQ到實體使用在'Queryable'定義相同的擴展方法是哪些LINQ的的一部分,所以該論點成立 - 究竟是什麼downvote呢? EF沒有任何論據是ORM,但查詢部分Linq to Entities就是這樣 - 查詢**。 – BrokenGlass

+0

您的抱怨是人們不應該使用LINQ to Entities來更新他們的數據是毫無根據的。 OP沒有尋求更新或插入的LINQ語句;它正在尋求更新,並在LINQ記錄插入正確的方法實體ORM – sq33G

1

SaveChanges()執行你數據的基礎上自上次調用的所有更改。這包括:

  • 添加新項目的集合
  • 從集合中刪除項目
  • 更改屬性

所以,你要麼將記錄添加到集合或得到現有的並修改其屬性。沒有一般的方法可以做到這一點。執行更改後,請致電SaveChanges()將其保存。