LINQ to Entities DateTime比较 [英] LINQ to Entities DateTime Compare
问题描述
DateTime == DateTime - 整天
。 我想这样做:
返回上下文。 Events.Any(x =>
x.UserId == id
&& x.Date> = date
&&&& x.Date< date.AddDays 1)
&& x.Type == EventType.StartWork);
问题是上述查询是不正确的LINQ,因为AddDays()方法。 >
我试图使用如下所示的DbFunctions:
return context.Events .Any(x =>
x.UserId == id
&& x.Date> = date
&& x.Date< DbFunctions.AddDays ,1)
&& x.Type == EventType.StartWork);
另外这一个:
return context.Events.Any(x =>
x.UserId == id
&& DbFunctions.TruncateTime(date.Date)== date.Date
&& x.Type == EventType.StartWork);
这些查询都没有提供预期的结果。
只需创建2个日期:
var datePlusOneDay = date.AddDays 1);
return context.Events.Any(x => x.UserId == id
&& x.Date> = date
&&日期< datePlusOneDay
&& x.Type == EventType.StartWork);
另外我不确定但是问题可能是你的日期不仅可以是日期部分,还可以时间部分。
所以要确保你只选择你的 DateTime
变量的日期部分,你可以这样做: p>
date = date.Date;
var datePlusOneDay = date.AddDays(1);
I have problem with comparing dates in LINQ to entities expression. I would like to check if DateTime == DateTime - whole day
.
I wanted to do it like that:
return context.Events.Any(x =>
x.UserId == id
&& x.Date >= date
&& x.Date < date.AddDays(1)
&& x.Type == EventType.StartWork);
The problem is that above query is not correct with LINQ because of AddDays() method.
I`ve tried to use DbFunctions like below:
return context.Events.Any(x =>
x.UserId == id
&& x.Date >= date
&& x.Date < DbFunctions.AddDays(date, 1)
&& x.Type == EventType.StartWork);
Also this one:
return context.Events.Any(x =>
x.UserId == id
&& DbFunctions.TruncateTime(date.Date) == date.Date
&& x.Type == EventType.StartWork);
None of these queries are not giving expected results.
Just create 2 dates:
var datePlusOneDay = date.AddDays(1);
return context.Events.Any(x => x.UserId == id
&& x.Date >= date
&& x.Date < datePlusOneDay
&& x.Type == EventType.StartWork);
Also I'm not sure but problem could be that your date can have not only date part but also time part.
So to be sure that you select only date part of your DateTime
variable you can do like this:
date = date.Date;
var datePlusOneDay = date.AddDays(1);
这篇关于LINQ to Entities DateTime比较的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!