【发布时间】:2016-04-14 20:17:33
【问题描述】:
我在我的应用程序中使用 linq。查询有几个条件.Where(a => !one || a.id == 1)。
bool one = false;
bool two = false;
bool three = false;
db.type.Where(w => !one|| w.id == 1).Where(w => !two || w.id == 2).Where(w => !three || w.id == 3).ToList()
但是这个查询给了我结果:
db.type.Where(w => w.id == 1 &&
w.id == 2 &&
w.id == 3)
我想得到:
db.type.Where(w => w.id == 1 ||
w.id == 2 ||
w.id == 3)
请帮帮我。我该如何解决这个问题?
【问题讨论】:
-
链接多个
Where等效于单个Where和&&使用的标准。我猜你可以看到你不能用这种技术模拟||。 -
@IvanStoev 我可以用其他技术解决这个问题吗?
-
您能否提供一些示例输入和输出数据?变量
one和id1之间有关系吗? -
使用
or条件构建单个Where。如果它需要是动态的(我猜是这种情况),那么有很多关于 SO 的示例,通常涉及某种谓词表达式构建器。 -
@RePierre变量
one与id无关,需要动态添加条件。
标签: entity-framework linq