现在有一天正在寻找谷歌的解决方案。但是还没有找到任何解决方法。
我有一个表单,我使用jQuery日历选择开始日期和结束日期。
public Nullable<DateTime> AssignedDate { get; set; }
以下是我的LINQ
from c in entities.tDocumentStatus
orderby c.AssignedDate descending
where (EntityFunctions.TruncateTime(c.AssignedDate) >= EntityFunctions.TruncateTime(startDate.Date) && EntityFunctions.TruncateTime(c.AssignedDate) <= EntityFunctions.TruncateTime(endDate.Date))
select new ReportMapper()
{
DocumentName = c.CheckoutFolderName,
AssignedDate = c.AssignedDate==null? (EntityFunctions.TruncateTime(c.LastUpdatedOn)): (EntityFunctions.TruncateTime(c.AssignedDate)),
});
它会返回正确的记录,直到开始日期小于结束日期,但
时开始日期等于结束日期。它没有返回记录(但有记录)。
这个LINQ有什么问题。
答案 0 :(得分:0)
以下是我更新的LINQ,它解决了我的要求,即在比较时排除Nullable<DateTime>
的时间部分: -
from c in entities.tDocumentStatus
orderby c.AssignedDate descending
where ((EntityFunctions.CreateDateTime(c.AssignedDate.Value.Year, c.AssignedDate.Value.Month, c.AssignedDate.Value.Day, 0, 0, 0) >= EntityFunctions.CreateDateTime(startDate.Year, startDate.Month, startDate.Day, 0, 0, 0)) &&
EntityFunctions.CreateDateTime(c.AssignedDate.Value.Year, c.AssignedDate.Value.Month, c.AssignedDate.Value.Day, 0, 0, 0) <= EntityFunctions.CreateDateTime(endDate.Year, endDate.Month, endDate.Day, 0, 0, 0)
select new ReportMapper()
{
DocumentName = c.CheckoutFolderName,
AssignedDate = c.AssignedDate==null? (EntityFunctions.TruncateTime(c.LastUpdatedOn)): (EntityFunctions.TruncateTime(c.AssignedDate)),
});
此处startDate
&amp; endDate
是方法参数。
希望这有帮助:)