【发布时间】:2009-10-30 16:21:33
【问题描述】:
我有一个包含许多位列的产品信息表。可以从每个列都有一个复选框的界面查询此表。复选框分为几个相关的组。
例如,其中三列描述了产品适用于各种市场的情况,即汽车、航空和船舶。
如果这些复选框都没有被选中,我希望执行以下 SQL。
SELECT * FROM Products
如果检查了 Automotive,则应执行以下 SQL
SELECT * FROM Products WHERE Automotive = 1
如果选中了多个,我希望将这些选项组合在一起
SELECT * FROM Products WHERE
Automotive = 1
OR
Aviation = 1
在良好的旧 C# 和 SQL 中,我可以通过有条件地将 SQL 连接在一起来实现此逻辑,但我无法使用 Linq 生成相同的逻辑。
我的问题是如何有条件地将 WHERE 子句及其元素添加到我的查询中。
我希望只有一个执行查询的点,因此,如果可能的话,我想避免使用 C# if 来分支到不同的查询。
【问题讨论】:
标签: c# linq linq-to-sql