Delen via


Instructie: Samengestelde sleutels in query's verwerken

Sommige operators kunnen slechts één argument gebruiken. Als uw argument meer dan één kolom uit de database moet bevatten, moet u een anoniem type maken om de combinatie weer te geven.

Voorbeeld 1

In het volgende voorbeeld ziet u een query die de operator GroupBy aanroept, die slechts één key argument kan gebruiken.

        var query =
from cust in db.Customers
group cust.ContactName by new { City = cust.City, Region = cust.Region };

        foreach (var grp in query)
        {
            Console.WriteLine($"\nLocation Key: {grp.Key}");
            foreach (var listing in grp)
            {
                Console.WriteLine($"\t{listing}");
            }
        }
Dim query = _
From cust In db.Customers _
Group cust.ContactName By Key = New With {cust.City, cust.Region} _
Into Group

For Each grp In query
    Console.WriteLine("Location Key: {0}", grp.Key)
    For Each listing In grp.Group
        Console.WriteLine(vbTab & "0}", listing)
    Next
Next

Voorbeeld 2

Dezelfde situatie heeft betrekking op joins, zoals in het volgende voorbeeld:

        var query =
from ord in db.Orders
from prod in db.Products
join det in db.OrderDetails
    on new { ord.OrderID, prod.ProductID } equals new { det.OrderID, det.ProductID }
    into details
from det in details
select new { ord.OrderID, prod.ProductID, det.UnitPrice };
Dim query = From ord In db.Orders, prod In db.Products _
            Join det In db.OrderDetails _
            On New With {ord.OrderID, prod.ProductID} Equals _
            New With {det.OrderID, det.ProductID} _
            Select ord.OrderID, prod.ProductID, det.UnitPrice

Zie ook