实体框架LINQ查询构造



我正在学习EF和LINQ,同时为一个项目的API工作虽然在大多数情况下EF和LINQ使我的编码更容易,但这个特殊的情况是不同的。

我有一个整数列表,我必须查询我的DB,包括里面的所有int列表[10,2,23]

var queryable = (from p in db.plants 
                           where p.plant_id == 10
                              || p.plant_id == 2
                              || p.plant_id == 23
                           select p)
                 .ToList();

,但列表是在运行时创建的,其中的项数是可变的那么创建查询的方法是什么呢?

您可以在所需id的IEnumerable上使用Contains()函数。实体框架将此转换为SQL IN子句,因此它是一个很好的高效查询。

所以这将导致你的例子是:

var plantIds = new List<int> {10, 2, 23};
var queryable = (from p in db.plants
                 where plantIds.Contains(p.plant_id)
                 select p)
                .ToList();

相关内容

  • 没有找到相关文章

最新更新