EntityReference<TEntity>.Load(MergeOption) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
載入相關物件 EntityReference<TEntity> 並使用指定的合併選項。
public:
override void Load(System::Data::Objects::MergeOption mergeOption);
public override void Load(System.Data.Objects.MergeOption mergeOption);
override this.Load : System.Data.Objects.MergeOption -> unit
Public Overrides Sub Load (mergeOption As MergeOption)
參數
- mergeOption
- MergeOption
指定若物件已存在 ObjectContext於 中,該物件應如何回傳。
例外狀況
備註
這個方法可用來載入相關的物件。
載入後,相關物件會從 Value 屬性中存取。
要明確載入相關物件,必須呼叫 Load 相關端由導航屬性回傳的方法。 對於一對多的關係,呼叫 Load 的方法 ,EntityCollection<TEntity>對於一對一的關係,則呼叫 Load 。EntityReference<TEntity> 這會將相關的對象數據載入物件內容。 當查詢回傳結果時,你可以用 foreach 迴圈For Each...Next (Visual Basic 中)列舉物件集合,並條件性地呼叫 Load 該 EntityReference<TEntity> 方法, EntityCollection<TEntity> 並對結果中的每個實體進行屬性。
該Load方法會從資料來源載入相關物件,無論IsLoaded是否 。true
注意
當你在(foreachC#)或For Each(Visual Basic)列舉時呼叫該Load方法,物件服務會嘗試開啟新的資料讀取器。 除非你在連接字串中指定 multipleactiveresultsets=true 多個活躍結果集,否則此操作會失敗。 你也可以將查詢結果載入 List<T> 一個集合。 這會關閉數據讀取器,並可讓您列舉集合以載入參考的物件。
此方法在載入相關物件前呼叫內部 RelatedEnd.ValidateLoad 方法,以驗證呼叫 的 Load 條件是否正確。 該 RelatedEnd.ValidateLoad 方法檢查:
- 存在有效的 ObjectContext 。
- 該實體並不處於狀態 Deleted 。
- MergeOption當且僅當來源實體為 NoTracking時,必Load定為 NoTracking 。 如果來源實體是用其他 MergeOption來取得的,則 LoadMergeOption 可以是任何 ,但 NoTracking (例如,該實體可能載入 , OverwriteChanges 選項 Load 可以是 AppendOnly)。
- 如果
mergeOption是 NoTracking, Load 則不會被已載入的實體呼叫,也 Load 不會在非空且未被追蹤 RelatedEnd的實體上呼叫。
當相關物件已載入 ObjectContext時,該Load方法強制參數所mergeOption指定的。MergeOption 如需詳細資訊,請參閱 身分識別解析、狀態管理和變更追蹤。