我有它創建了一個上下文和檢索數據(沒有物體跟蹤),並將信息傳遞迴UI層數據訪問層: -附加VS選擇和修改L2S
我的工作的單元是這樣的方法並在執行特定方法後發佈appdatacontext。所以,我不跟蹤任何地方的數據上下文的..
public LinqObject GetObject(){
using (appdatacontext = new DataContext()){
---code to select and return object
}
}
我會使用UI形式的修改數據,我的數據提交回數據庫。
有兩種方法: -
1. Detach and reattach to a different data context using [Detach..Serialise and Attach]
*I have to do a lot of plumping code to enable this functionality*
2. Get the DB object using primary key and make changes in the selected object and SubmitChanges.
哪一個是完成這個任務更好的方法?
我完全反對將工作單元移動到數據訪問層明智或Web應用程序生命週期(httpcontext),因爲我不想跟蹤更改並使整個應用程序結構複雜化,並且不需要使用豐富的代碼。我只是使用LINQ將我的檢索和更新簡化爲DB。
我從來沒有見過任何人在LINQ環境下討論這兩種方法,這就是爲什麼我要求最佳實踐。
我建議你檢查[This](http://www.codeproject.com/Articles/33088/Reattaching-Entity-Graphs-with-the-Entity-Framewor)。這是您的第一個選擇解決方案。我必須在EF 3.5中使用它。我不知道這是否在4.0及更高版本中解決。 – noobob 2013-05-09 12:16:25