![](/img/trans.png)
[英]DbFunctions.DiffDays() results in: This function can only be invoked from LINQ to Entities
[英]Entity Framework returns 0 results in spite of the data in the tables when `DbFunctions.DiffDays(DateTime.Now, c.ModifiedDate)` is used in the query
下面的代碼應從status = 1
且數據的日期超過90 days
的table
返回結果。 table
有許多數據的modified date
超過90 days
。
但是此代碼返回0個結果。 datetime
差會引發錯誤,因此使用DbFunctions
代替,因為我使用的EF是DbFunctions
。
IEnumerable<IncentiveClaim> claims = repository.Table
.Where(c => c.Status == 1
&& DbFunctions.DiffDays(DateTime.Now, c.ModifiedDate) >= 90)
.AsEnumerable();
該方法的參數為DbFunctions.DiffDays(smallestDateTime, LargestDateTime)
。 因此, ModifiedDate
應該是第一個參數, DateTime.Now
應該是第二個參數。 然后,您必須在方法上調用.Value
以獲得no. of days
no. of days
。
修改代碼如下:
IEnumerable<IncentiveClaim> claims = repository.Table
.Where(c => c.Status == 1
&& DbFunctions.DiffDays(c.ModifiedDate, DateTime.Now).Value >=
90)
.ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.