【发布时间】:2011-01-12 17:37:44
【问题描述】:
我正在使用 LINQ(在 mvc 中)进行我的第一个项目,所以我可能错过了一些非常简单的东西。然而,经过一天的搜索和试验,没有发现任何可行的方法,因此发布了这篇文章。
我正在尝试编写一个 LINQ 查询(Linq to SQL),该查询将在 where 语句中包含多个条件,由 OR 或 AND 分隔。直到运行时,我们才知道查询中有多少条件。这是一个搜索过滤器控件,用户可以在其中选择多个条件进行过滤。
select * from table
where table.col = 1
OR table.col = 2
OR table.col = 7
.... 'number of other conditions
之前我只是将 SQL 查询构造为一个字符串,同时遍历所有条件。但是,在 LINQ 中似乎应该有一个很好的方法来做到这一点。 我曾尝试使用表达式树进行查找,但目前它们似乎有点超出我的想象。另一个想法是在 where 语句中执行一个 lambda 函数,如下所示:
For Each value In values
matchingRows = matchingRows.Where(Function(row) row.col = value)
但是,这仅适用于 AND 条件。我该如何做手术室?
【问题讨论】:
标签: sql vb.net linq where-clause