使用已中斷連線的實體
在 Entity Framework 架構應用程式中,內容類別負責偵測套用至追蹤實體的變更。 呼叫 SaveChanges 方法會將內容所追蹤的變更保存到資料庫。 使用多層式架構 (N-Tier) 應用程式時,實體物件通常會在中斷與內容的連線時進行修改;因此您必須決定如何追蹤變更,以及如何將這些變更回報至內容。 本主題討論搭配使用 Entity Framework 與已中斷連線的實體時可用的不同選項。
Web 服務架構
Web 服務技術通常支援一些模式,而這些模式可用來保存已中斷連線之個別物件的變更。 例如,ASP.NET Web API 可讓您選寫控制器動作的程式碼,其中包含 EF 的呼叫,用來保存對資料庫上的物件所做的變更。 事實上,Visual Studio 中的 Web API 工具可讓您輕鬆地從 Entity Framework 6 模型中 Scaffold Web API 控制器。 如需詳細資訊,請參閱搭配使用 Web API 與 Entity Framework 6。
在過去,已有數項其他的 Web 服務技術提供與 Entity Framework 的整合,例如 WCF Data Services 和 RIA Services。
低層級 EF API
如果您不想要使用現有的多層式架構 (N-Tier) 解決方案,或者想要自訂 Web API 服務中控制器動作所發生的狀況,Entity Framework 提供的 API 可讓您套用在中斷連線的層上所做的變更。 如需詳細資訊,請參閱新增、附加和實體狀態。
自我追蹤實體
在中斷與 EF 內容的連線時追蹤任意實體圖形的變更是一道難題。 嘗試解決此問題的其中一個方法是自我追蹤實體的程式碼產生範本。 此範本會產生實體類別,其中包含的邏輯可用來追蹤已中斷連線層所做的變更,以作為實體本身的狀態。 還會產生一組擴充方法,將這些變更套用到內容。
這個範本可與使用 EF 設計工具建立的模型搭配使用,但無法與 Code First 模型搭配使用。 如需詳細資訊,請參閱自我追蹤實體。
重要
我們不再建議使用自我追蹤實體範本。 繼續提供該範本只是為了支援現有應用程式。 如果您的應用程式需要使用已中斷連線的實體圖形,請考慮使用 Trackable Entities (可追蹤的實體) 之類的其他替代項目,這是一項類似於自我追蹤實體的技術,可由社群更積極地進行開發或使用低層級變更追蹤 API 來撰寫自訂程式碼。