Como: associação usando chaves compostas (guia de programação do C#)
Este exemplo mostra como executar as operações de associação na qual você deseja usar mais de uma chave para definir uma correspondência.Isso é realizado usando uma chave composta.Você cria uma composição nomeada ou chave como um tipo anônimo digitado com os valores que você deseja comparar.Se a variável de consulta será transmitida através de limites de método, use um tipo nomeado que substitui o Equals e GetHashCode para a chave.Os nomes das propriedades e a ordem em que eles ocorrem, devem ser idênticos em cada chave.
Exemplo
O exemplo a seguir demonstra como usar uma chave composta para associar dados de três tabelas:
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};
Inferência de tipos em chaves compostas depende dos nomes das propriedades em que as chaves e a ordem em que eles ocorrem.Se as propriedades em seqüências de código-fonte não tiverem os mesmos nomes, você deve atribuir novos nomes nas chaves.Por exemplo, se a Orders tabela e OrderDetails cada tabela usado nomes diferentes para suas colunas, você pode criar as chaves compostas, atribuindo nomes idênticos nos tipos anônimos:
join...on new {Name = o.CustomerName, ID = o.CustID} equals
new {Name = d.CustName, ID = d.CustID }
As chaves compostas também podem ser usadas em um group cláusula.
Compilando o código
Para compilar e executar esse código, execute estas etapas:
Abrir Como se conectar ao banco de dados Northwind e siga as instruções para configurar o projeto e criar a conexão de banco de dados.Para obter mais informações, consulte Como: instalar bancos de dados de amostra.
No samples.cs, crie um novo método vazio que leva um parâmetro de entrada do Northwind chamado db (semelhante a outros métodos nesse arquivo).Cole o código deste exemplo para o corpo do método.
Modificar Program. cs para chamar o novo método de Main.
Pressione F5 para compilar e executar a consulta.
Consulte também
Referência
cláusula JOIN (referência de C#)
cláusula Group (referência de C#)