2012-01-12 60 views
0

情景: 我使用LINQ到實體查詢記錄在數據庫中。於是我打開數據方面,做我的LINQ查詢,並通過返回的對象關到我的商業邏輯層/表示層。更新實體對象斷章取義要求3個呼叫?

項目會從表現層更新,並保存事件發生時,我通過實體回BLL/DAL。

在我的dal中,我必須打開一個新的上下文,執行linq查詢以重新選擇要更新的對象,使用我傳入的實體更新返回的記錄,然後選擇「SaveChanges()」。

我正在做這個對嗎?看來,如果我用ADO我只有不得不作出2數據庫調用......最初的選擇和更新。現在我必須做3個電話(2選1更新)?似乎效率低下。註釋?我希望他們在未來的版本中改進這一點,因爲這可能是在高性能的應用程序大的垮臺......

回答

0

由於您使用「的SaveChanges」,我假設你正在使用實體框架。如果這是真的,你應該能夠附上你的返回的實體。

事實上,這是WCF RIA服務是如何工作的,他們甚至把它包裝起來的AttachAsModified擴展方法給你:

http://msdn.microsoft.com/en-us/library/ff423414(VS.91).aspx