次の方法で共有


DataLoadOptions.LoadWith メソッド

定義

オーバーロード

LoadWith(LambdaExpression)

ラムダ式を使用して、メイン ターゲットに関連する指定したデータを取得します。

LoadWith<T>(Expression<Func<T,Object>>)

T 型のオブジェクトにクエリが送信されるときに取得するサブオブジェクトを指定します。

LoadWith(LambdaExpression)

ラムダ式を使用して、メイン ターゲットに関連する指定したデータを取得します。

public:
 void LoadWith(System::Linq::Expressions::LambdaExpression ^ expression);
public void LoadWith (System.Linq.Expressions.LambdaExpression expression);
member this.LoadWith : System.Linq.Expressions.LambdaExpression -> unit
Public Sub LoadWith (expression As LambdaExpression)

パラメーター

expression
LambdaExpression

関連する素材を識別するラムダ式。

Northwnd db = new Northwnd(@"c:\northwnd.mdf");
DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith<Customer>(c => c.Orders);
db.LoadOptions = dlo;

var londonCustomers =
    from cust in db.Customers
    where cust.City == "London"
    select cust;

foreach (var custObj in londonCustomers)
{
    Console.WriteLine(custObj.CustomerID);
}
Dim db As New Northwnd("c:\northwnd.mdf")

Dim dlo As DataLoadOptions = New DataLoadOptions()
dlo.LoadWith(Of Customer)(Function(c As Customer) c.Orders)
db.LoadOptions = dlo

Dim londonCustomers = _
    From cust In db.Customers _
    Where cust.City = "London" _
    Select cust

For Each custObj In londonCustomers
    Console.WriteLine(custObj.CustomerID)
Next

注釈

次の例では、クエリを実行すると、ロンドンに住んでいるすべての Orders のすべての Customers が取得されます。 その結果、それ以降 Orders オブジェクトの Customer プロパティにアクセスしても、新しいデータベース クエリは実行されません。

適用対象

LoadWith<T>(Expression<Func<T,Object>>)

T 型のオブジェクトにクエリが送信されるときに取得するサブオブジェクトを指定します。

public:
generic <typename T>
 void LoadWith(System::Linq::Expressions::Expression<Func<T, System::Object ^> ^> ^ expression);
public void LoadWith<T> (System.Linq.Expressions.Expression<Func<T,object>> expression);
member this.LoadWith : System.Linq.Expressions.Expression<Func<'T, obj>> -> unit
Public Sub LoadWith(Of T) (expression As Expression(Of Func(Of T, Object)))

型パラメーター

T

クエリする型。

この型が割り当てられていない場合、例外がスローされます。

パラメーター

expression
Expression<Func<T,Object>>

取得するフィールドまたはプロパティを識別します。

一対一または一対多のリレーションシップを表すフィールドまたはプロパティが式で識別されない場合は、例外がスローされます。

次の例では、クエリを実行すると、ロンドンに住んでいるすべての Orders のすべての Customers が取得されます。 その結果、それ以降 Orders オブジェクトの Customer プロパティにアクセスしても、新しいデータベース クエリは実行されません。

Northwnd db = new Northwnd(@"c:\northwnd.mdf");
DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith<Customer>(c => c.Orders);
db.LoadOptions = dlo;

var londonCustomers =
    from cust in db.Customers
    where cust.City == "London"
    select cust;

foreach (var custObj in londonCustomers)
{
    Console.WriteLine(custObj.CustomerID);
}
Dim db As New Northwnd("c:\northwnd.mdf")

Dim dlo As DataLoadOptions = New DataLoadOptions()
dlo.LoadWith(Of Customer)(Function(c As Customer) c.Orders)
db.LoadOptions = dlo

Dim londonCustomers = _
    From cust In db.Customers _
    Where cust.City = "London" _
    Select cust

For Each custObj In londonCustomers
    Console.WriteLine(custObj.CustomerID)
Next

注釈

2 つのレベルのリレーションシップの読み込みを指定することはできません (例: Orders.OrderDetails)。 これらのシナリオでは、2 つの異なる LoadWith メソッドを指定する必要があります。

循環を回避するには、 の「解説」セクションを DataLoadOptions参照してください。

適用対象