首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当查询中使用`DbFunctions.DiffDays(DateTime.Now,c.ModifiedDate)`时,实体框架将返回0结果,而不考虑表中的数据

当查询中使用`DbFunctions.DiffDays(DateTime.Now,c.ModifiedDate)`时,实体框架将返回0结果,而不考虑表中的数据
EN

Stack Overflow用户
提问于 2019-02-05 14:07:08
回答 1查看 45关注 0票数 0

下面的代码应该从包含status = 1且数据比90 days旧的table返回结果。在table中,有很多数据的modified date90 days更多。

但是这段代码返回0个结果。因为我使用的EF是EF6,所以datetime的差异抛出了错误,所以我使用了DbFunctions

代码语言:javascript
复制
IEnumerable<IncentiveClaim> claims = repository.Table
                      .Where(c => c.Status == 1 
                        && DbFunctions.DiffDays(DateTime.Now, c.ModifiedDate) >= 90)
                      .AsEnumerable();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-05 14:34:26

该方法的参数为DbFunctions.DiffDays(smallestDateTime, LargestDateTime)。因此,ModifiedDate应该是第一个参数,DateTime.Now应该是第二个参数。然后,您必须在该方法上调用.Value来获取no. of days

修改代码如下:

代码语言:javascript
复制
IEnumerable<IncentiveClaim> claims = repository.Table
           .Where(c => c.Status == 1 
            && DbFunctions.DiffDays(c.ModifiedDate, DateTime.Now).Value >= 
            90)
            .ToList();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54528557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档