在两个日期之间从db获取项目:抛出异常:'System.NotSupportedException'

时间:2016-11-25 13:56:18

标签: c# entity-framework

尝试从db获取项目但获取System.NotSupportedException,发现如何避免,但对我来说它没有帮助。我有什么想法可以避免这种异常吗?

return await DbContext.Members.Where(
     x => x.ClientId == criteria.ClientId 
         && DbFunctions.TruncateTime(x.CreatedOn).Value.Date 
                  >= criteria.StartDate.Value.Date 
         && DbFunctions.TruncateTime(x.CreatedOn).Value.Date 
                  <= criteria.EndDate.Value.Date
    ).ToListAsync();

2 个答案:

答案 0 :(得分:2)

DbFunctions.TruncateTime会截断日期的时间,因此无需使用.Value.Date,这是造成异常的原因。

答案 1 :(得分:1)

您可以使用 EntityFunctions.TruncateTime

return await DbContext.Members.Where(
                        x => x.ClientId == criteria.ClientId &&
                        EntityFunctions.TruncateTime(x.CreatedOn) >= criteria.StartDate.Value.Date &&
                        EntityFunctions.TruncateTime(x.CreatedOn) <= criteria.EndDate.Value.Date
                        ).ToListAsync();