implementando a mesma funcionalidade que uma consulta simples contém () se torna mais complexa ao usar a estrutura da entidade e as teclas primárias compostas. Este artigo discute várias maneiras de resolver este problema:
tentando usar uma tupla representando um valor de chave primária composta para uma junção direta ou uma operação falha na estrutura da entidade. Isso ocorre porque essas operações não podem ser convertidas em SQL, porque as tuplas não são consideradas valores originais nesse contexto.
Outra maneira é usar asenumerable () para extrair os dados da tabela de banco de dados para a memória e executar a filtragem necessária usando o LINQ para objetos. No entanto, para tabelas grandes, essa solução é extremamente ineficiente.
Usando uma instrução IPLESSE () para cada componente de chave primária composta resultará em filtragem incorreta. Essa abordagem pode produzir resultados enganosos, porque as entidades que contêm apenas um componente correspondente serão incluídas por engano.
você pode usar uma consulta Modified Contans () contendo os valores calculados derivados do componente de chave primária composta (por exemplo, entity.id1 * entity.id2). No entanto, essa solução não é pesquisável e leva a um desempenho ruim.
O método mais escalável é combinar contém e conexões de memória. Este método usa uma consulta preliminar contém () para restringir o conjunto de resultados e, em seguida, refiná -lo com mais precisão por meio de conexões de memória.
Construtores preliminares como o LinQkit permitem a criação de consultas contendo ou cláusulas para cada combinação de valor de chave primária composta. Embora esse método possa funcionar para pequenas listas, para grandes listas, seu desempenho será degradado.
Outra maneira é usar o Union para combinar várias consultas que combinam cada valor de chave primária composta. Esta solução pode funcionar para listas pequenas e médias.
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