DataLoadOptions.LoadWith 方法

定义

重载

LoadWith(LambdaExpression)

通过使用 lambda 表达式检索与主目标相关的指定数据。

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

指定在为 T 类型的对象提交查询时要检索的子对象。

LoadWith(LambdaExpression)

通过使用 lambda 表达式检索与主目标相关的指定数据。

public void LoadWith(System.Linq.Expressions.LambdaExpression expression);

参数

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);
}

注解

在下面的示例中,在执行查询时会检索到位于伦敦的所有 Orders 所下的所有 Customers。 这样一来,连续访问 Orders 对象的 Customer 属性不会触发新的数据库查询。

适用于

.NET Framework 4.8.1 和其他版本
产品 版本
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

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

指定在为 T 类型的对象提交查询时要检索的子对象。

public void LoadWith<T>(System.Linq.Expressions.Expression<Func<T,object>> expression);

类型参数

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);
}

注解

不能指定两个级别的关系的加载, (例如 Orders.OrderDetails ,) 。 在这些方案中,必须指定两个单独的 LoadWith 方法。

若要避免循环,请参阅 中的 DataLoadOptions“备注”部分。

适用于

.NET Framework 4.8.1 和其他版本
产品 版本
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1