MergeOption 列舉

定義

指定載入內容物件中的物件如何與已經位於物件內容中的物件合併。

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

欄位

AppendOnly 0

不存在物件內容中的物件會附加至內容。 如果某個物件已經存在內容中,就不會使用資料來源值來覆寫項目中物件屬性的目前和原始值。 物件項目的狀態和項目中物件屬性的狀態都不會變更。 AppendOnly 是預設的合併選項。

NoTracking 3

物件會保持處於 Detached 狀態中,而且不會在 ObjectStateManager 中追蹤。 不過,具有 Proxy 的 Entity Framework 產生的實體和 POCO 實體會維護對象內容的參考,以加速載入相關物件。

OverwriteChanges 1

不存在物件內容中的物件會附加至內容。 如果某個物件已經存在內容中,就會使用資料來源值來覆寫項目中物件屬性的目前和原始值。 物件項目的狀態會設定為 Unchanged,而且沒有屬性會標示為已修改。

PreserveChanges 2

不存在物件內容中的物件會附加至內容。

備註

Entity Framework 只會維護具有快取中特定實體索引鍵之物件的單一實例。 對像是 EntityKey 代表物件身分識別的不可變物件。 實體索引鍵是用來執行物件內容中的識別解析。 如需詳細資訊,請參閱 使用實體密鑰。 如果已經追蹤具有相同身分識別的實體,來自數據源的數據和狀態管理員中的數據會根據 MergeOption 查詢的合併。

其他相關信息 MergeOption.PreserveChanges

如果實體的狀態為 EntityState.Unchanged,就會使用資料來源值來覆寫項目中的目前和原始值。 實體的狀態會維持 EntityState.Unchanged,而且沒有屬性會標示為已修改。

如果實體的狀態為 EntityState.Modified,就不會使用資料來源值來覆寫已修改屬性的目前值。 不過,系統會使用資料來源的值來覆寫未修改屬性的原始值。

在 .NET Framework 4 中,Entity Framework 會比較未修改之屬性的目前值與從數據源傳回的值。 如果這些值不同,屬性就會標示為已修改。

當您呼叫 ObjectContext.SaveChanges 時,只有已修改的屬性會保存到資料來源。

適用於