实体框架 - 属性IN子句用法

时间:2012-11-12 11:23:01

标签: sql entity-framework entity-framework-5

我需要在我的数据库查询中使用“普通”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中执行此查询?

1 个答案:

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

应该有效