How to: Ingressar usando composto de Chaves (guia de programação 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 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};
A inferência de tipo composto chaves depende dos nomes das propriedades em que as chaves e a ordem em que eles ocorrem. Se as propriedades de seqüências de origem não possuem os mesmos nomes, você deve atribuir novos nomes de chaves. Por exemplo, se a Orders tabela e OrderDetails cada tabela usado nomes diferentes para suas colunas, você poderia criar 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: Criar uma conexão de dados no banco de dados Northwind e siga as instruções para definir o projeto e criar a conexão de banco de dados.
No samples.cs, crie um novo método de vazio que leva um parâmetro de entrada do Northwind chamado db (semelhante a outros métodos no arquivo). Cole o código deste exemplo 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 deunir (referência de C#)
cláusula de grupo (referência de C#)