Share via


Vorgehensweise: Filtern verbundener Daten (LINQ to SQL)

Verwenden Sie die AssociateWith-Methode, um Unterabfragen zur Einschränkung der abgerufenen Datenmenge anzugeben.

Beispiel

Im folgenden Beispiel werden mit der AssociateWith-Methode nur die Orders abgerufen, die nicht an diesem Tag versendet wurden. Ohne diesen Ansatz werden alle Orders abgerufen, auch wenn nur ein Untersatz benötigt wird.

Dim db As New Northwnd("c:\northwnd.mdf")

Dim dlo As DataLoadOptions = New DataLoadOptions()
dlo.AssociateWith(Of Customer)(Function(c As Customer) _
        c.Orders.Where(Function(p) p.ShippedDate <> DateTime.Today))
db.LoadOptions = dlo

Dim custOrderQuery = _
    From cust In db.Customers _
    Where cust.City = "London" _
    Select cust

For Each custObj In custOrderQuery
    Console.WriteLine(custObj.CustomerID)
    For Each ord In custObj.Orders
        Console.WriteLine("{0}{1}", vbTab, ord.OrderDate)
    Next

Next
Northwnd db = new Northwnd(@"c:\northwnd.mdf");
DataLoadOptions dlo = new DataLoadOptions();
dlo.AssociateWith<Customer>(c => c.Orders.Where(p => p.ShippedDate != DateTime.Today));
db.LoadOptions = dlo;
var custOrderQuery = 
    from cust in db.Customers
    where cust.City == "London"
    select cust;

foreach (Customer custObj in custOrderQuery)
{
    Console.WriteLine(custObj.CustomerID);
    foreach (Order ord in custObj.Orders)
    {
        Console.WriteLine("\t {0}",ord.OrderDate);
    } 
}

Siehe auch

Weitere Ressourcen

Abfragen der Datenbank (LINQ to SQL)