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>。 這樣就會將相關物件資料載入物件內容中。 當查詢傳回結果時,您可以使用迴圈 For Each...Next
(在 Visual Basic) 中列舉物件 foreach
集合,並有條件地呼叫 Load
結果中每個實體的方法 EntityReference<TEntity> 和 EntityCollection<TEntity> 屬性。
方法 Load 會從資料來源載入相關的物件,不論 是否 IsLoaded 為 true
。
注意
於 Load (C#) 或 foreach
(Visual Basic) 列舉期間呼叫 For Each
方法時,物件服務會嘗試開啟新的資料讀取器。 除非您在連接字串中指定 multipleactiveresultsets=true
啟用多個現用結果集,否則這項作業將會失敗。 您也可以將查詢的結果載入 List<T> 集合中。 這樣會關閉資料讀取器,並且讓您列舉集合,以便載入參考的物件。
這個方法會在載入相關物件之前先呼叫內部 RelatedEnd.ValidateLoad
方法,以驗證 的呼叫 Load 是否具有正確的條件。 方法 RelatedEnd.ValidateLoad
會檢查:
- 有效 ObjectContext 存在。
- 實體不是處於 Deleted 狀態。
- MergeOptionLoad的 必須是 NoTracking ,而且只有在來源實體為 時才為 NoTracking 。 如果來源實體是使用任何其他 MergeOption 來擷取,則可以 Load MergeOption 是任何專案,但 NoTracking (例如,實體可能已載入 OverwriteChanges ,而且 Load 選項可以 AppendOnly) 。
- 如果
mergeOption
為 NoTracking , Load 則不會在已載入的實體上呼叫 ,而且 Load 未在非空白且未追蹤 RelatedEnd 的 上呼叫 。
在 中 ObjectContext 載入相關物件時, Load 方法會 MergeOption 強制執行 參數所 mergeOption
指定的 。 如需詳細資訊,請參閱身分識別解析、狀態管理和變更追蹤。