36

我需要在对我的数据库的查询中使用“普通”WHERE 和 IN 子句通过各种字段过滤一些实体,但我不知道如何使用 EF 来做到这一点。

这是方法:

数据库表

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

EF 中所需的 SQL 查询

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

英孚代码

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

我尝试过使用 ANY 和 CONTAINS,但我不知道如何使用 EF 来做到这一点。

如何在 EF 中进行此查询?

4

1 回答 1

79
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();
}

should work

于 2012-11-12T11:29:07.460 回答