使用nHibernate查询今天日期在publishDate和到期日期之间的位置
我试图找出如何在NHibernate中进行最佳查询,以便返回的结果介于今天时间>=PublishDateTime和最简单的Linq查询之间:使用nHibernate查询今天日期在publishDate和到期日期之间的位置,nhibernate,date,date-range,nhibernate-criteria,Nhibernate,Date,Date Range,Nhibernate Criteria,我试图找出如何在NHibernate中进行最佳查询,以便返回的结果介于今天时间>=PublishDateTime和最简单的Linq查询之间: return _session.Query<Message>() .Where(m => DateTime.Today >= m.PublishDateTime && (m.ExpiryDateTime == null ||
return _session.Query<Message>()
.Where(m => DateTime.Today >= m.PublishDateTime &&
(m.ExpiryDateTime == null ||
DateTime.Now <= m.ExpiryDateTime)
.OrderByDescending(m => m.PublishDateTime)
.ToList();
return\u session.Query()
.Where(m=>DateTime.Today>=m.PublishDateTime&&
(m.ExpiryDateTime==null||
DateTime.Now m.PublishDateTime)
.ToList();
标准:
return _session.CreateCriteria<Message>()
.Add(Restrictions.Le("PublishedDateTime", DateTime.Today) &
(Restrictions.IsNull("ExpiryDateTime") |
Restrictions.Ge("ExpiryDateTime",
DateTime.Now)))
.AddOrder(Order.Desc("PublishedDateTime"))
.List<Message>();
return\u session.CreateCriteria()
.Add(Restrictions.Le(“PublishedDateTime”,DateTime.Today)和
(限制。IsNull(“ExpiryDateTime”)|
限制。Ge(“ExpiryDateTime”,
DateTime.Now)
.AddOrder(Order.Desc(“PublishedDateTime”))
.List();
在c#中:
var formato=“dd/MM/yyyy h:MM:ss”;
var sDesde=DateTime.Now.ToString(“dd/MM/yyyy”)+“0:00:00”;
var sHasta=DateTime.Now.ToString(“dd/MM/yyyyy h:MM:ss”);
Viaje vDesde=new-Viaje{Viajefecha=DateTime.ParseExact(sDesde,formato,null)};
Viaje vHasta=new-Viaje{Viajefecha=DateTime.ParseExact(sHasta,formato,null)};
StringWriter strWriter=新StringWriter();
var resultado=cp.sesion.CreateCriteria().Add(Expression.Between(“Viajefecha”,vDesde.Viajefecha,vHasta.Viajefecha)).AddOrder(Order.Asc(“Viajefecha”)).List();
+1感谢您给出这两个示例。Linq我是新的,但对Criteria方法感兴趣,所以谢谢您帮我一个忙。请更改。今天到。现在,我将标记您作为答案。再次感谢您的输入:)我以为您想要的是“今天的日期”,而不是“当前时间”(问题是这样说的)抱歉,我的意思是日期时间-我的措辞有误,但字段上的措辞正确-现在将更新-再次感谢您的帮助作为冈比亚人,vai por mim!
return _session.CreateCriteria<Message>()
.Add(Restrictions.Le("PublishedDateTime", DateTime.Today) &
(Restrictions.IsNull("ExpiryDateTime") |
Restrictions.Ge("ExpiryDateTime",
DateTime.Now)))
.AddOrder(Order.Desc("PublishedDateTime"))
.List<Message>();
var formato = "dd/MM/yyyy h:mm:ss";
var sDesde = DateTime.Now.ToString("dd/MM/yyyy") + " 0:00:00";
var sHasta = DateTime.Now.ToString("dd/MM/yyyy h:mm:ss");
Viaje vDesde = new Viaje { Viajefecha = DateTime.ParseExact(sDesde, formato , null) };
Viaje vHasta = new Viaje { Viajefecha = DateTime.ParseExact(sHasta, formato, null) };
StringWriter strWriter = new StringWriter();
var resultado = cp.sesion.CreateCriteria<Viaje>().Add(Expression.Between("Viajefecha", vDesde.Viajefecha, vHasta.Viajefecha)).AddOrder(Order.Asc("Viajefecha")).List<Viaje>();