在linq中,我写了一个日期查询,在sql和sql之间,在这种情况下,我没有得到dtata,当用户从日期输入相同的日期,到目前为止数据没有显示数据在哪里对于数据库中的特定日期。 这是我的linq查询。
var result = from MaterialStatus in materialRequistionEntities.Tbl_MatReq_NewItemReq_M
join CurrentStatus in materialRequistionEntities.Tbl_StatusMaster_M on
MaterialStatus.ReqCurStatus equals CurrentStatus.StatusId
join Employee in materialRequistionEntities.Tbl_Emp_Master_M
on MaterialStatus.Indentor equals Employee.EmpId
where (MaterialStatus.CreatedOn >= dt.Date && MaterialStatus.CreatedOn <= dt1.Date)
select *****************
答案 0 :(得分:1)
你应该这样做:
var upperDate = dt1.Date.AddDays(1);
...
where (MaterialStatus.CreatedOn >= dt.Date
&& MaterialStatus.CreatedOn < upperDate
这样,表达式可以转换为sargable SQL谓词。
答案 1 :(得分:0)
假设dt1
实际上大于dt
,您可以使用
var result = from MaterialStatus in materialRequistionEntities.Tbl_MatReq_NewItemReq_M
join CurrentStatus in materialRequistionEntities.Tbl_StatusMaster_M on
MaterialStatus.ReqCurStatus equals CurrentStatus.StatusId
join Employee in materialRequistionEntities.Tbl_Emp_Master_M
on MaterialStatus.Indentor equals Employee.EmpId
where (MaterialStatus.CreatedOn.Date >= dt.Date && MaterialStatus.CreatedOn.Date <= dt1.Date)
select *****************
注意CreatedOn.Date
处理小时/分钟/秒/毫秒组件
答案 2 :(得分:0)
我希望它没问题。
where (MaterialStatus.CreatedOn.Value.Date >= dt.Date && MaterialStatus.CreatedOn.Value.Date <= dt1.Date.AddDay(1))