Lambda表达式"IN"运算符是否存在?

siv*_*vaL 19 c# lambda c#-4.0 entity-framework-5

我正在寻找像下面这样构建Lambda表达式

IQueryable<Object> queryEntity = 
                _db.Projects.Where(Project=>Project.Id.IN(1,2,3,4));
Run Code Online (Sandbox Code Playgroud)

我没有IN在Lambda表达式中找到任何运算符.

有人有建议吗?

And*_*rpi 26

使用IEnumerable.Contains.

var idList = new[] { 1, 2, 3, 4 };
IQueryable<Object> queryEntity = 
                _db.Projects.Where(Project => idList.Contains(Project.Id));
Run Code Online (Sandbox Code Playgroud)

idList当然可以构建内联.

  • 如果`idList`真的很大,那么很有可能它作为数据库查询结果出现,在这种情况下你应该反对该查询加入,对吧? (3认同)