下面的代码应该从包含status = 1且数据比90 days旧的table返回结果。在table中,有很多数据的modified date比90 days更多。
但是这段代码返回0个结果。因为我使用的EF是EF6,所以datetime的差异抛出了错误,所以我使用了DbFunctions。
IEnumerable<IncentiveClaim> claims = repository.Table
.Where(c => c.Status == 1
&& DbFunctions.DiffDays(DateTime.Now, c.ModifiedDate) >= 90)
.AsEnumerable();发布于 2019-02-05 14:34:26
该方法的参数为DbFunctions.DiffDays(smallestDateTime, LargestDateTime)。因此,ModifiedDate应该是第一个参数,DateTime.Now应该是第二个参数。然后,您必须在该方法上调用.Value来获取no. of days。
修改代码如下:
IEnumerable<IncentiveClaim> claims = repository.Table
.Where(c => c.Status == 1
&& DbFunctions.DiffDays(c.ModifiedDate, DateTime.Now).Value >=
90)
.ToList();https://stackoverflow.com/questions/54528557
复制相似问题