共用方式為


MergeOption 列舉

定義

指定將物件載入物件內容的方式與物件內容中的物件合併。

public enum class MergeOption
public enum MergeOption
type MergeOption = 
Public Enum MergeOption
繼承
MergeOption

欄位

名稱 Description
AppendOnly 0

不存在於物件上下文中的物件會附加到上下文中。 如果物件已經在上下文中,該項目中物件屬性的當前及原始值不會被資料來源值覆蓋。 物件的狀態以及該物件在條目中的屬性狀態不會改變。 AppendOnly 是預設的合併選項。

OverwriteChanges 1

不存在於物件上下文中的物件會附加到上下文中。 如果物件已經在上下文中,則該項目中物件屬性的當前與原始值會被資料來源值覆蓋。 物件條目狀態設為 Unchanged,沒有任何屬性被標記為修改。

PreserveChanges 2

不存在於物件上下文中的物件會附加到上下文中。

NoTracking 3

物件會被維持在一個Detached狀態,不會在 中被追蹤。ObjectStateManager 然而,Entity Framework 產生的實體與帶有代理的 POCO 實體會維持對物件上下文的參考,以便載入相關物件。

備註

實體框架只會在快取中維護一個具有特定實體鍵的物件實例。 這些 EntityKey 物件是不可變的物件,代表物件的身份。 實體鍵用於在物件上下文中執行身份解析。 如果已經有相同身份的實體被追蹤,來自資料來源的資料與狀態管理器中已存在的資料會依查詢的 進行 MergeOption 合併。

更多資訊 MergeOption.PreserveChanges

若實體狀態為 EntityState.Unchanged,則條目中當前及原始值會被資料來源值覆蓋。 實體狀態保持不變 EntityState.Unchanged ,且沒有屬性被標記為已修改。

若實體狀態為 EntityState.Modified,修改屬性的當前值不會被資料來源值覆蓋。 未修改屬性的原始值會被資料來源的值覆蓋。

在 .NET Framework 4 中,實體框架會比較未修改屬性的當前值與從資料來源回傳的值。 若數值不相同,該屬性會被標記為修改。

當你呼叫 ObjectContext.SaveChanges時,只有修改過的屬性會持久化到資料來源。

適用於