DataLoadOptions.LoadWith 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
LoadWith(LambdaExpression) |
通过使用 lambda 表达式检索与主目标相关的指定数据。 |
LoadWith<T>(Expression<Func<T,Object>>) |
指定在为 T 类型的对象提交查询时要检索的子对象。 |
LoadWith(LambdaExpression)
通过使用 lambda 表达式检索与主目标相关的指定数据。
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
标识相关内容的 lambda 表达式。
示例
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
要查询的类型。
如果未映射此类型,则会引发异常。
参数
示例
在下面的示例中,在执行查询时会检索到位于伦敦的所有 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
注解
不能指定两个级别的关系的加载, (例如 Orders.OrderDetails
,) 。 在这些方案中,必须指定两个单独的 LoadWith 方法。
若要避免循环,请参阅 中的 DataLoadOptions“备注”部分。