DataLoadOptions 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供以進行相關資料的立即載入和篩選。
public ref class DataLoadOptions sealed
public sealed class DataLoadOptions
type DataLoadOptions = class
Public NotInheritable Class DataLoadOptions
- 繼承
-
DataLoadOptions
範例
當您從 Northwind 範例資料庫擷取 Customers
時,您可以使用 DataLoadOptions 來指定要擷取的 Orders
。 您甚至可以指定要擷取的 子 Orders
集。
備註
一般
當您查詢物件時,實際上只擷取了所要求的物件。 相關物件不會同時自動擷取。 (如需詳細資訊,請參閱 跨關聯性查詢。)
類別 DataLoadOptions 提供兩種方法,以立即載入指定的相關資料。 方法 LoadWith 可讓您立即載入與主要目標相關的資料。 方法 AssociateWith 允許篩選相關的物件。
規則
請注意下列關於使用方式的規則 DataLoadOptions :
在執行 DataLoadOptions 第一個查詢之後將 指派給 DataContext ,會產生例外狀況。
DataLoadOptions將 它指派給 產生 DataContext 例外狀況之後修改
迴圈處理
LoadWith 和 AssociateWith 指示詞不得建立迴圈。 下列代表這類圖表的範例:
範例 1:自我遞迴
dlo.LoadWith<Employee>(e => e.Reports);
範例 2:返回指標
dlo.LoadWith <Customer>(c => C.Orders);
dlo.LoadWith <Order>(o => o.Customer);
範例 3:較長的週期
雖然這不應該在正規化的模型中發生,但有可能。
dlo.LoadWith <A>(a => a.Bs);
dlo.LoadWith <B>(b => b.Cs);
dlo.LoadWith <C>(c => c.As);
範例 4:自我遞迴子查詢
dlo.AssociateWith<A>(a=>a.As.Where(a=>a.Id=33));
範例 5:較長的遞迴子查詢
dlo.AssociateWith<A>(a=>a.Bs.Where(b=>b.Id==3));
dlo.AssociateWith<B>(b=>b.As.Where(a=>a.Id==3));
以下是一些一般規則,可協助您瞭解這些案例中發生的狀況。
LoadWith 每個呼叫都會 LoadWith 檢查是否已將迴圈導入圖形。 如果有,如範例 1、2 和 3 所示,則會擲回例外狀況。
AssociateWith 執行時間的引擎不會將現有的 SubQuery 子句套用至運算式內的關聯性。
在範例 4 中
Where
,子句會針對所有A
執行,而不只是由 SubQuery 運算式本身篩選的子句 (,因為這是遞迴)在範例 5 中,第一個
Where
子句會套用至所有B
子句,即使 上的子查詢也B
一樣。 即使 上A
有子查詢,第二個Where
子句仍會套用至 所有A
。
建構函式
DataLoadOptions() |
初始化 DataLoadOptions 類別的新執行個體。 |
方法
AssociateWith(LambdaExpression) |
篩選針對特定關聯性所擷取的物件。 |
AssociateWith<T>(Expression<Func<T,Object>>) |
篩選針對特定關聯性所擷取的物件。 |
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
GetAssociationCriteria(MemberInfo, LambdaExpression) |
提供以進行相關資料的立即載入和篩選。 |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
IsImmediate(MemberInfo) |
提供以進行相關資料的立即載入和篩選。 |
LoadWith(LambdaExpression) |
使用 lambda 運算式,擷取與主要目標相關之指定的資料。 |
LoadWith<T>(Expression<Func<T,Object>>) |
指定當送出型別 T 物件的查詢時,要擷取的子物件。 |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |