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#)