如何在.NET Framework中用System.Linq单查询实现多条件数据获取
解决方案
当然可以用单条查询同时满足这两个条件,只需要在Where筛选器里把两个条件用逻辑或(||)连接起来即可,EF会自动把这个LINQ表达式转换成对应的SQL查询,一次性从数据库获取所有符合要求的数据。
修改后的代码如下:
int[] targetIds = { 2, 6, 9 }; var contributions = dbContext.FoodMenu .Where(x => targetIds.Contains(x.Id) || x.Id > 20) .ToList();
说明
targetIds.Contains(x.Id):匹配ID为2、6、9的记录x.Id > 20:匹配所有ID大于20的记录- 逻辑或(
||)确保只要满足其中一个条件的记录都会被筛选出来
EF会将这段代码转换为类似下面的SQL语句(不同数据库语法可能略有差异):
SELECT * FROM FoodMenu WHERE Id IN (2, 6, 9) OR Id > 20
这样就能通过一次数据库查询拿到你需要的所有FoodMenu对象列表了。
内容的提问来源于stack exchange,提问作者Cypher
相关产品推荐
相关产品推荐

