C# 在没有实体框架的情况下使用EntityFunctions

C# 在没有实体框架的情况下使用EntityFunctions,c#,.net,linq,datetime,C#,.net,Linq,Datetime,我有一个Linq查询: people.Where(x => EntityFunctions.DiffHours(x.CreateDate, dtMatch) > 0) 这只在Linq 2实体中起作用 如何使此方法在没有实体的情况下运行 到目前为止,我所尝试的: people.Where(x => (x.CreateDate - dtMatch).TotalHours > 0) 。。。似乎给出了一个不同的结果简言之:将这两个语句等效为将TotalHours更改为Ma

我有一个Linq查询:

people.Where(x => EntityFunctions.DiffHours(x.CreateDate, dtMatch) > 0)
这只在
Linq 2实体中起作用

如何使此方法在没有实体的情况下运行

到目前为止,我所尝试的:

people.Where(x => (x.CreateDate - dtMatch).TotalHours  > 0) 

。。。似乎给出了一个不同的结果

简言之:将这两个语句等效为将
TotalHours
更改为
Math.Floor((x.CreateDate-dtMatch.TotalHours)


TotalHours
将返回一个小数。因此,如果两个日期之间有30分钟,则返回
0.5
。当.5大于0时,以上返回true。如果您想要整小时,请将其更改为Math.Floor(TotalHours),而不是
TotalHours
。这将把它四舍五入到下一个最大的整数



——返回一个表示整小时数的整数,如果它是30分钟,那么差为0,那么,

< P>也许,如果dtMatt超过了CytDATE,则应该考虑该情况,如果是:

people.Where(x => Math.Abs((x.CreateDate - dtMatch).TotalHours) > 0) 

其中(x=>(x.CreateDate-dtMatch).TotalHours>0)通常有效。你能告诉我们你看到的这两个语句之间有什么区别吗?使用小时只得到小时数部分,它总是小于24。那是个坏主意!好答案,顺便说一句
people.Where(x => Math.Abs((x.CreateDate - dtMatch).TotalHours) > 0)