web-dev-qa-db-fra.com

Entity Framework - utilisation de la clause IN d'attribut

J'ai besoin de filtrer certaines entités par divers champs en utilisant des clauses WHERE et IN "normales" dans une requête sur ma base de données, mais je ne sais pas comment faire cela avec EF.

Voici l'approche:

Table de base de données

Licenses
-------------
license INT
number INT
name VARCHAR
...

Requête SQL souhaitée dans EF

SELECT * FROM Licenses WHERE license = 1 AND number IN (1,2,3,45,99)

Code EF

using (DatabaseEntities db = new DatabaseEntities ())
{
    return db.Licenses.Where(
        i => i.license == mylicense 
           // another filter          
        ).ToList();
}

J'ai essayé avec ANY et CONTAINS, mais je ne sais pas comment faire avec EF.

Comment faire cette requête dans EF?

26
unairoldan
int[] ids = new int[]{1,2,3,45,99};
using (DatabaseEntities db = new DatabaseEntities ())
{
    return db.Licenses.Where(
        i => i.license == mylicense 
           && ids.Contains(i.number)
        ).ToList();
}

devrait marcher

57
Albin Sunnanbo