【发布时间】:2012-04-17 09:33:45
【问题描述】:
我正在尝试设计一个过滤特定位置的 LINQ 查询。在我的 UI 下拉列表中,该下拉列表的第一个条目为“所有站点”。因此,当查询将“所有站点”视为值时,它不应该执行过滤器。这可能没有多大意义,但这就是我过去在 SQL 中的做法..
select * from table
where ((location = @loc and @loc is not null) or (@loc is null))
这就是我在 LINQ 中尝试的方式。
var dataSetB = db.Data
.Where(j => loc != 'All Sites' && j.Location1.Description.Equals(loc));
问题在于,当用户选择“所有站点”时 - 没有返回任何结果,而我期望所有结果都没有按位置过滤。
有谁知道如何在一个 LINQ 语句中完成这项工作?
示例下拉菜单..
<All Sites>
<Sydney>
<New York>
<London>
【问题讨论】:
-
我假设查询被缩短并且有更多的语句。如果您不想维护重复的查询,他的方法是有效的,恕我直言。
标签: c# sql linq linq-to-sql lambda