使用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