Pergunta : O que é a maneira a mais rápida de fazer onde pergunta em linq2sql

Eu tenho uma tabela de base de dados conter muitos cem dos milhares de fileiras e eu sou tentativa para começ aquelas fileiras cujo fósforo da identificação com as aquelas de um outro subconjunto de diversos milhares de ID's.

I ter um IQueryable que retorne as fileiras e então eu estou fazendo um linq seleto como segue: class= " lineNumbers " >
1 do >

unitIDs da corda [] = {AAAAAAA ", “AAAAAAB”};

unitEvents do var = systemRepository.GetUnitEvents ();

o var combina = da nos unitEvents
			  de b nos unitIDs
			  onde == b da.UnitID
			  selecionar novo {a, b};

contagem = fósforos do int. Contagem (); class= >

de

Although os trabalhos acima, pode tomar diversos segundos para que termine os fósforos. Indicação da contagem (). Se eu faço uma indicação de SQL similar diretamente através do SQL retorna em menos do que um segundo. e.g.

select * de unit_event onde o unitid (“AAAAAAA”, “AAAAAAB”) no

I am não experimentado com Linq/Sql e quis saber se eu estou usando o melhor method.

Perhaps que eu devo redijo um procedimento armazenado para o manter todo na base de dados?

Many thanks
class= do

Resposta : O que é a maneira a mais rápida de fazer onde pergunta em linq2sql

Olá! Petroclus;

A fim fazer a na cláusula na primeira liberação que EF você precisará de transferir o LinqKit que está livre se usar que construirá um predicado de modo que possa ser usado na pergunta.

Transferir LinqKit de aqui na parte inferior do ==> http://www.albahari.com/nutshell/linqkit.aspx da página
Unzip a lima e abrir a solução no estúdio visual e ajustar a solução à liberação.
Compilar a solução. Se nenhum erro fecha a solução.
Agora em seu projeto atual adicionar uma referência ao LinqKit.dll que estará no diretório do escaninho/liberação do projeto de LinqKit.
Adicionar a indicação de utilização a seu ==> do projeto using LinqKit;
A função e a pergunta below devem trabalhar não.

A seguinte ligação é informação em LinqKet.
Predicados dinâmicamente de composição da expressão
http://www.albahari.com/nutshell/predicatebuilder.aspx

Fernando
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
IEnumerable público GetUnitEventsWhereUnitIDIn (unitIDs da corda [])
{
    predicado do var = PredicateBuilder.False ();
    foreach (unitID da corda nos unitIDs)
    {
        corda identificação = unitID;
        predicado = predicado. Ou (=> I.UnitID.Contains de I (identificação));
    }

    db.UnitEvents.AsExpandable do retorno (). Onde (predicado);
}
Outras soluções  
 
programming4us programming4us