Ver Mensaje Individual
  #3 (permalink)  
Antiguo 10/06/2009, 00:16
CMSalvado
 
Fecha de Ingreso: agosto-2006
Mensajes: 4
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: LINQ: Hacer Where campo in()

Para usar la sentencia IN de SQL en Linq to SQL tienes que hacer lo siguiente:

Los valores a comparar deberán estar en un tipo que implemente IEnumerable<T>, como arrays, listas genéricas, colecciones etc.

Por ejemplo usando un array de strings:

Código csharp:
Ver original
  1. string[] valores = "0001,0002,0003".Split(',');

o utilizando una lista genérica de strings:

Código csharp:
Ver original
  1. var valores = new List<string> {"0001", "0002", "0003"};


Y para hacerlo tendrás que hacer tu where al contrario de como lo posteaste en tu pregunta:



Código csharp:
Ver original
  1. var query = from t in db.Tabla
  2.                   where valores.Contains(t.Campo)
  3.                   select t;


Básicamente en el where se comprueba, si el valor de t.Campo existe en valores (usando Contains).



Saludos,


--

CMS