实体框架 - 日期范围

时间:2014-04-25 15:18:53

标签: c# linq entity-framework linq-to-sql

我有一个MVC应用程序,在视图上有一个网格。允许用户使用不同的信息过滤网格上的数据。一种方法是使用两个日期选择器作为日期范围(最小/最大)。我试图在业务逻辑中找到所有匹配的数据集。但由于某种原因,日期范围始终返回空集。我知道我没有正确编码,但不知道要改变什么。这是代码 -

filteredbyCustCriteria = _unitOfWork.CustomerRepository.Get.Where
(w => (reportSearch.FullName != null ? (w.FirstName + " " + w.LastName).Contains(reportSearch.FullName.Trim()) : true)
&& (reportSearch.MinPaidDate != null ? EntityFunctions.TruncateTime(w.Orders.FirstOrDefault().OrderPayments.FirstOrDefault().PaymentDate) >= reportSearch.MinPaidDate : true)
&& (reportSearch.MaxPaidDate != null ? EntityFunctions.TruncateTime(w.Orders.FirstOrDefault().OrderPayments.FirstOrDefault().PaymentDate) <= reportSearch.MaxPaidDate : true));

它可以找到全名。

1 个答案:

答案 0 :(得分:2)

使用可空DateTime时,我发现在某些情况下我必须使用.Value。试试这个:

>= reportSearch.MinPaidDate.Value
<= reportSearch.MaxPaidDate.Value