Sdílet prostřednictvím


Postupy: Spojení pomocí složených klíčů (Průvodce programováním v C#)

Tento příklad ukazuje, jak provádět operace spojení, ve kterých chcete použít více než jeden klíč k definování shoda.To lze provést pomocí složeného klíče.Vytvoření složené klíče jako anonymní typ nebo pojmenované zadaný s hodnotami, které chcete porovnat.Pokud proměnná dotazu bude předán přes hranice metoda, pomocí s názvem typ, který má přednost před Equals a GetHashCode klíče.Názvy vlastností a pořadí, v jakém se objevují, musí být identický každý klíč.

Příklad

Následující příklad demonstruje použití složený klíč připojení dat ze tří tabulek:

var query = from o in db.Orders
    from p in db.Products
    join d in db.OrderDetails 
        on new {o.OrderID, p.ProductID} equals new {d.OrderID, 
        d.ProductID} into details
        from d in details
        select new {o.OrderID, p.ProductID, d.UnitPrice};

Odvození typu složených klíčů závisí na názvy vlastností klíče a pořadí jejich výskytu.Pokud vlastnosti v posloupnosti zdroje nemají stejné názvy, je třeba přiřadit nové názvy v klíčích.Například pokud Orders tabulky a OrderDetails tabulka každý používá různé názvy sloupců, jejich, složeného klíče nelze vytvořit přiřazením shodných názvů v anonymní typy:

join...on new {Name = o.CustomerName, ID = o.CustID} equals 
    new {Name = d.CustName, ID = d.CustID }

Složené klíče lze také použít v group klauzule.

Probíhá kompilace kódu

  • Kompilace a spuštění tohoto kódu, postupujte takto:

  • Otevřít Postupy: Připojení k databázi Northwind a postupujte podle pokynů pro nastavení projektu a vytvořit připojení databáze.Další informace naleznete v tématu Postupy: Instalace ukázkových databází.

  • V samples.cs vytvořte nový prázdný metodu, která trvá Northwind vstupní parametr s názvem db (podobně jako jiné metody, které jsou v tomto souboru).Vložte kód z tohoto příkladu do těla metody.

  • Upravit volat metodu nové z program.cs Main.

  • Stisknutím klávesy F5 kompilace a spuštění dotazu.

Viz také

Referenční dokumentace

join – klauzule (Referenční dokumentace jazyka C#)

group – klauzule (Referenční dokumentace jazyka C#)

Koncepty

LINQ – výrazy dotazů (Průvodce programováním v C#)