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
Комментарии
В следующем примере все OrdersCustomers те, кто находится в Лондоне, извлекаются при выполнении запроса. В результате последовательный доступ к 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>>
Определяет поле или свойство, которое нужно получить.
Если выражение не определяет поле или свойство, представляющее связь "один к одному" или "один ко многим", создается исключение.
Примеры
В следующем примере все OrdersCustomers те, кто находится в Лондоне, извлекаются при выполнении запроса. В результате последовательный доступ к 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разделе .