Cuestión : Cuál es la manera más rápida de hacer en donde pregunta en linq2sql

Tengo una tabla de base de datos el contener de muchos cientos de millares de filas y soy intento para conseguir esas filas cuyo fósforo de la identificación con los de otro subconjunto de varios millares de ID's.

I tener un IQueryable que vuelva las filas y entonces estoy haciendo un linq selecto como sigue: class= " lineNumbers " >
1 del >

unitIDs de la secuencia [] = {AAAAAAA ", “AAAAAAB”};

unitEvents del var = systemRepository.GetUnitEvents ();

el var empareja = de a en unitEvents
			  de b en unitIDs
			  donde == b de a.UnitID
			  seleccionar nuevo {a, b};

cuenta = fósforos de la internacional. Cuenta (); class= >

de

Although los trabajos antedichos, puede tardar varios segundos para que acabe los fósforos. Declaración de la cuenta (). Si hago una declaración de SQL similar directo vía el SQL vuelve en menos que un segundo. ¿e.g.

select * de unit_event donde el unitid en (“AAAAAAA”, “AAAAAAB”) el

I no experimentado con Linq/Sql y quiso saber si estoy utilizando el mejor method.

Perhaps que debo escribo un procedimiento almacenado para mantenerlo todo la base de datos?

Many thanks
class= del

Respuesta : Cuál es la manera más rápida de hacer en donde pregunta en linq2sql

Hola Petroclus;

Para hacer a EN cláusula en el primer lanzamiento EF que usted necesitará transferir el LinqKit que está libre de utilizar que construirá un predicado para poderlo utilizar en la pregunta.

Transferir LinqKit de aquí en la parte inferior del ==> http://www.albahari.com/nutshell/linqkit.aspx de la página
Desabrochar el archivo y abrir la solución en estudio visual y fijar la solución al lanzamiento.
Compilar la solución. Si ningunos errores cierran la solución.
Ahora en su proyecto actual agregar una referencia al LinqKit.dll que estará en el directorio del compartimiento/del lanzamiento del proyecto de LinqKit.
Agregar la declaración que usa a su ==> del proyecto usar LinqKit;
La función y la pregunta below deben trabajar no.

El acoplamiento siguiente es Info en LinqKet.
Predicados de la expresión dinámicamente que componen
http://www.albahari.com/nutshell/predicatebuilder.aspx

Fernando
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
IEnumerable público GetUnitEventsWhereUnitIDIn unitIDs (de la secuencia [])
{
    predicado del var = PredicateBuilder.False ();
    foreach (unitID de la secuencia en unitIDs)
    {
        secuencia identificación = unitID;
        predicado = predicado. O (=> I.UnitID.Contains (identificación) de I);
    }

    db.UnitEvents.AsExpandable de vuelta (). Donde (predicado);
}
Otras soluciones  
 
programming4us programming4us