【问题标题】:get items from db between two dates: Exception thrown: 'System.NotSupportedException'在两个日期之间从 db 获取项目:抛出异常:'System.NotSupportedException'
【发布时间】:2016-11-25 13:56:18
【问题描述】:

试图从 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();

【问题讨论】:

标签: c# entity-framework


【解决方案1】:

DbFunctions.TruncateTime 会从日期中截断时间,因此无需使用导致异常的.Value.Date

【讨论】:

    【解决方案2】:

    您可以使用 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();
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-22
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    • 2022-01-05
    • 1970-01-01
    相关资源
    最近更新 更多