使用EntityFunctions我有一个LINQ查询:没有实体框架
people.Where(x => EntityFunctions.DiffHours(x.CreateDate, dtMatch) > 0)
,它只能在Linq 2 Entities
工作。
如何让此方法在没有实体的情况下运行?
我试过到目前为止:
people.Where(x => (x.CreateDate - dtMatch).TotalHours > 0)
...似乎给不同的结果
使用EntityFunctions我有一个LINQ查询:没有实体框架
people.Where(x => EntityFunctions.DiffHours(x.CreateDate, dtMatch) > 0)
,它只能在Linq 2 Entities
工作。
如何让此方法在没有实体的情况下运行?
我试过到目前为止:
people.Where(x => (x.CreateDate - dtMatch).TotalHours > 0)
...似乎给不同的结果
总之:为了使2所陈述等同变化TotalHours
到Math.Floor((x.CreateDate - dtMatch).TotalHours)
people.Where(x => Math.Floor((x.CreateDate - dtMatch).TotalHours) > 0)
TotalHours
将返回一个小数。所以如果在两个日期之间有30分钟,那么将返回0.5
。由于.5大于0,以上内容返回true。如果您希望整个小时将其更改为Math.Floor(TotalHours)而不是TotalHours
。这会将其舍入到下一个最大的整数。
EntityFunctions.DiffHours - 该返回表示的小时整数的整数,因此,如果它为30分钟。那么差异就是结果。
也许,你应该考虑的情况下,如果dtMatch超过CREATEDATE和的情况下,如果它是在:
people.Where(x => Math.Abs((x.CreateDate - dtMatch).TotalHours) > 0)
people.Where(X =>(x.CreateDate - dtMatch).TotalHours> 0),通常作品。你能告诉我们你看到的这两种说法有什么区别吗? – Teja