【问题标题】:Compare only Date in nHibernate Linq on a DateTime value在 DateTime 值上仅比较 nHibernate Linq 中的日期
【发布时间】:2009-11-12 18:07:19
【问题描述】:

我试图在 nHibernate linq 中比较两个日期(DateTime):

query = query.Where(l => (l.datCriacao.Date == dtLote.Date)

但我得到了错误:

NHibernate.QueryException: could not resolve property: datCriacao.Date of: SAGP.Entities.Lote

有谁知道我该如何解决这个问题?谢谢

【问题讨论】:

    标签: linq nhibernate datetime date compare


    【解决方案1】:

    我解决了日期之间的问题:

    DateTime initialDate, finalDate;
    initialDate= DateEntity.Date;
    finalDate= new DateTime(DateEntity.Year, DateEntity.Month, DateEntity.Day, 23, 59, 59);
    query = query.Where(l => (((l.dateEntity>= initialDate) && (l.dateEntity<= finalDate))
    

    【讨论】:

    • 我知道它很旧,但这是一个不好的例子,因为 dateEntity 可以是 23:59:59.200 并且会超出任何范围。 Chris M 给出了更好的答案。
    【解决方案2】:

    这是超级旧的,但我会在 jaspion 的示例中添加:

    query = query.Where(l => (l.datCriacao >= dtLote.Date && l.datCriacao < dtLote.Date.AddDays(1))
    

    【讨论】:

      【解决方案3】:

      你可以像这样检查条件

      var nextDay = DateTime.Today.AddDays(1);

      query = query.Where(l => (l.datCriacao >= dtLote && l.datCriacao

      在这里您将获得 dtLote 日期的记录,因为我们在 dtLote 和 dtLote+1 天 (00:00:00) 之间进行检查,我们只会获得今天的日期记录,可能是时间...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-28
        • 1970-01-01
        • 1970-01-01
        • 2020-05-20
        • 2014-12-03
        相关资源
        最近更新 更多