实体框架返回0的结果,尽管表中的数据时,`DbFunctions.DiffDays(DateTime.Now,c.ModifiedDate)在查询中使用`

问题描述 投票:0回答:1

下面的代码应该从具有table和数据比status = 1年长的90 days返回结果。在table有很多数据的拥有modified date更than90 days

但是,此代码返回0的结果。该datetime差异抛出错误,以便使用DbFunctions替代,因为EF我现在用的就是EF6。

IEnumerable<IncentiveClaim> claims = repository.Table
                      .Where(c => c.Status == 1 
                        && DbFunctions.DiffDays(DateTime.Now, c.ModifiedDate) >= 90)
                      .AsEnumerable();
c# .net entity-framework
1个回答
1
投票

该方法具有参数作为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();
© www.soinside.com 2019 - 2024. All rights reserved.