我正在构建一个查询工具,供非技术人员使用以从数据库中检索记录。
我有一个包含各种下拉菜单的表单,用户可以根据他们想要的内容进行选择。
我遇到一个问题,即我的查询返回与用户选择不匹配的记录。
我相信这只在我查询连接表时才会发生。
我有以下内容:
results = results.Where(c => c.CustomerEnrollment
.Where(x => x.CustomerCategoryID == CustomerCategoryID)
.Any());
results = results.Where(c => c.CustomerEnrollment
.Where(x => x.StartDate <= DateRangeStart && x.EndDate >= DateRangeStart)
.Any());
这将返回正确类别的结果,但不在指定的日期范围内。
我也尝试过:
results = results.Where(c => c.CustomerEnrollment
.Any(x => x.CustomerCategoryID == CustomerCategoryID));
最佳答案
尝试将日期范围检查更改为;
更改:
x => x.StartDate <= DateRangeStart && x.EndDate >= DateRangeStart
致:
//StartDate should be greater than or equal to
//EndDate should be less than or equal to
//Also you are using same variable DateRangeStart to check start and end
x => x.StartDate >= DateRangeStart && x.EndDate <= DateRangeEnd
关于Where 内的 Linq 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20140625/