无论何时与这些记录相关联,我都希望从特定日期获取所有记录.到目前为止,我有这样的方法:
public IQueryable<Record> QueryByDay(DateTime day) { DateTime from = day.Date; DateTime to = day.Date.AddDays(1); return repository.Table .Where(t => t.MyDate >= from && t.MyDate < to); }
但是在linq-to-object中我们可以做(假设Table现在是一些集合):
public IEnumerable<Record> QueryByDay(DateTime day) { return repository.Table .Where(t => t.MyDate.Date == day.Date); }
解决方法
如评论中所述,您的LINQ查询与NH 3.3一起正常工作.
在早期版本中,您可以使用HQL:
return session.createquery("from MyClass where date(MyDate) = :day") .SetParameter("day",day.Date) .List<MyClass>(); //executes
您还可以通过sqlFunction使用Criteria中的日期函数.这更复杂,但允许构建更多动态查询:
return session.CreateCriteria<Foo>() .Add(Restrictions.Eq( Projections.sqlFunction("date",NHibernateUtil.Date,Projections.Property("MyDate")),day.Date)) .List<MyClass>(); //executes
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。