Sdílet prostřednictvím


Postupy: Určení objemu načítaných souvisejících dat

LoadWith Pomocí metody určete, která data související s vaším hlavním cílem by se měla načíst současně. Pokud například víte, že budete potřebovat informace o objednávkách zákazníků, můžete zajistit LoadWith , aby se informace o objednávce načítaly současně s informacemi o zákaznících. Výsledkem tohoto přístupu je pouze jedna cesta do databáze pro obě sady informací.

Poznámka:

Data související s hlavním cílem dotazu můžete načíst načtením meziproduktu jako jedné rozsáhlé projekce, například načtením objednávek, když cílíte na zákazníky. Tento přístup má ale často nevýhody. Výsledky jsou například jen projekce, nikoli entity, které je možné změnit a zachovat pomocí LINQ to SQL. A můžete načítat velké množství dat, která nepotřebujete.

Příklad

V následujícím příkladu OrdersCustomers se při spuštění dotazu načtou všechny osoby, které se nacházejí v Londýně. V důsledku toho následný přístup k Orders vlastnosti objektu Customer neaktivuje nový databázový dotaz.

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

Viz také