"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso realizar uma junção de vários campos no LINQ?

Como posso realizar uma junção de vários campos no LINQ?

Postado em 2025-02-25
Navegar:260

How Can I Perform a Multi-Field Join in LINQ?

Linq Connection Multi-Field Explicação detalhada

]

LINQ (consulta integrada do idioma) fornece uma maneira poderosa e expressiva de consultar dados. Um de seus principais recursos é a capacidade de usar a cláusula junção para conectar dados de várias fontes de dados. Embora as conexões tradicionais geralmente envolvam conexões de um único campo, o LINQ também pode implementar conexões com vários campos.

Suponha o seguinte cenário: você precisa executar uma consulta LINQ que se junta a duas tabelas entidade e entity2 , onde Field1 em entidade ] Os campos] e Field2 precisam corresponder aos campos Field1 e em entity2 .

Para fazer isso, você pode usar a seguinte sintaxe:

var result = from x in entity
             join y in entity2
             on new { x.field1, x.field2 } equals new { y.field1, y.field2 }
anonymous tipo

{x.field1, x.field2} cria uma combinação de chave que combina field1 e da entidade tabela o valor de Field2 . Esta combinação de chave é então comparada com a combinação de chaves {y.field1, y.field2} da tabela entidade2 .

deve -se notar que esse método assume uma conexão de valor igual, onde os valores no campo de junção devem ser os mesmos. Se você precisar de junções não equivalentes, como consultas de intervalo, poderá adicionar condições adicionais na cláusula

onde .

Por exemplo, para conectar

Field1 e de entity e entity2 e verifique a entidade entity O campo date está dentro do intervalo especificado e você pode usar:

var resultado = de x em entidade Junte -se a Y na entidade2 em novo {x.field1, x.field2} é igual a novos {y.field1, y.field2} onde x.date> = startDate && x.date var result = from x in entity join y in entity2 on new { x.field1, x.field2 } equals new { y.field1, y.field2 } where x.date >= startDate && x.date
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3