DataLoadOptions.LoadWith メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
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参照してください。
適用対象
.NET