有什麼方法可以跟蹤用於ASP.NET應用程序的上下文之間的EF實體更改嗎?實體框架變更跟蹤
自我跟蹤實體對我來說效果不佳,因爲它主要是爲WCF設計的。所有追蹤POCO變化的方法都是以共享上下文爲導向的。
有什麼方法可以跟蹤用於ASP.NET應用程序的上下文之間的EF實體更改嗎?實體框架變更跟蹤
自我跟蹤實體對我來說效果不佳,因爲它主要是爲WCF設計的。所有追蹤POCO變化的方法都是以共享上下文爲導向的。
不,您必須自己跟蹤更改,或者您必須使用STE並將它們存儲在ViewState/Session回傳之間。
編輯:如果你使用簡單的實體,你可以使用一些方法來跟蹤你的變化,但首先你必須從數據庫(=額外的數據庫查詢)加載實體。然後,您可以使用ObjectContext實例的ApplyCurrentValues方法。此Appraoch不適用於updating object complex graphs.
我建議使用內置於SQL Server中的更改跟蹤(http://technet.microsoft.com/en-us/library/cc280462(v=sql.105).aspx)。該框架允許您識別給定的行是否發生了更改,或者即使列已更改。你確實需要以某種方式管理從何時起改變的問題。 SQL服務器中的更改跟蹤是通過將表格和'自何時'版本號傳入ChangeTable函數(http://technet.microsoft.com/en-us/library/bb934145.aspx)來完成的。您可以使用此函數的結果來確定表最後一次更改的時間以及表的主鍵。據我所知,只能在定義了主鍵的表中使用它。然後,您可以創建一個表值函數或一個返回已更改記錄的視圖。這些都很容易使用實體框架消耗。
(http://msdn.microsoft.com/zh-cn/data/hh859577.aspx映射到表值函數)鏈接到如何使用來自Entity的表值函數。 – Mauser 2014-01-24 17:12:00