我需要在我的数据库查询中使用“普通”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)
EF代码
using (DatabaseEntities db = new DatabaseEntities ())
{
return db.Licenses.Where(
i => i.license == mylicense
// another filter
).ToList();
}
我尝试过ANY和CONTAINS,但我不知道如何用EF做到这一点。
如何在EF中执行此查询?
答案 0 :(得分:56)
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();
}
应该有效