Procedura: gestire le chiavi composite nelle queryHow to: Handle Composite Keys in Queries

Alcuni operatori possono accettare un solo argomento.Some operators can take only one argument. Se l'argomento deve includere più di una colonna del database, è necessario creare un tipo anonimo per rappresentare la combinazione.If your argument must include more than one column from the database, you must create an anonymous type to represent the combination.

EsempioExample

Nell'esempio seguente viene illustrata una query che richiama l'operatore GroupBy che può accettare un solo argomento key.The following example shows a query that invokes the GroupBy operator, which can take only one key argument.

        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: {0}", grp.Key);
            foreach (var listing in grp)
            {
                Console.WriteLine("\t{0}", 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

EsempioExample

La stessa situazione è applicabile ai join, come nell'esempio seguente:The same situation pertains to joins, as in the following example:

        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

Vedere ancheSee Also

Concetti relativi alle queryQuery Concepts