Udostępnij za pośrednictwem


Porady: sprzęganie za pomocą kluczy złożonych (Przewodnik programowania w języku C#)

W tym przykładzie przedstawiono sposób wykonywania operacji sprzężenia, w których chcesz użyć więcej niż jednego klucza do definiowania dopasowania.Można to osiągnąć przy użyciu klucza złożonego.Można tworzyć projekt wstępny klucza jako typ anonimowy lub nazwane wpisane wartości, które chcesz porównać.Jeśli zmienna kwerendy będą przekazywane przez granice metody, należy użyć typu nazwany, który zastępuje Equals i GetHashCode dla klucza.Nazwy właściwości i kolejność, w jakiej występują one muszą być identyczne w każdym kluczu.

Przykład

Poniższy przykład ilustruje sposób użyć klucza złożonego w celu dołączenia danych z trzech tabel:

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};

Wnioskowanie typu złożonego kluczy zależy od nazwy właściwości kluczy i kolejności, w jakiej występują one.Jeśli nie ma tych samych nazw właściwości w sekwencji źródła, należy przypisać nowej nazwy w kluczach.Na przykład jeśli Orders tabeli i OrderDetails różnych nazw dla ich kolumny używane do każdej tabeli, można utworzyć klucze złożonych przez przypisanie identyczne nazwy typów anonimowe:

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

Projekt wstępny klucze mogą być również używane w group klauzuli.

Kompilowanie kodu

  • Aby skompilować i uruchomić ten kod, wykonaj następujące kroki:

  • Otwórz Porady: połączenie z bazą danych Northwind i postępuj zgodnie z instrukcjami, aby skonfigurować projektu i utworzyć połączenie z bazą danych.Aby uzyskać więcej informacji, zobacz Porady: instalacja przykładowych baz danych.

  • W samples.cs należy utworzyć nowy, pusty metody, która przyjmuje Northwind parametr wejściowy o nazwie db (podobnie jak inne metody w pliku).Wklej kod w tym przykładzie do treści metody.

  • Zmodyfikuj plik program.cs wywołanie nowej metody z Main.

  • Naciśnij klawisz F5, aby skompilować i uruchomić kwerendę.

Zobacz też

Informacje

Klauzula join (odwołanie w C#)

group — Klauzula (odwołanie w C#)

Koncepcje

Wyrażenia kwerend LINQ (Przewodnik programowania w języku C#)