Pour une colonne de type varchar Je pourrais écrire cette requête de recherche:requête Comme pour DateTime dans NHibernate
public IList<Order> GetByName(string orderName)
{
using (ISession session = NHibernateHelper.OpenSession())
{
return session.CreateCriteria<Order>().
Add(Restrictions.Like("Name", string.Format("%{0}%", orderName))).
List<Order>();
}
}
Comment implémenter la requête de recherche similaire pour une colonne qui a un type DateTime?
public IList<Order> GetByDateTime(string str)
{
using (ISession session = NHibernateHelper.OpenSession())
{
return session.CreateCriteria<Order>()
.Add(Restrictions.Like(Projections.Cast(NHibernateUtil.String, Projections.Property("Created")),
'%' + str + '%'))
.List<Order>();
}
}
C'est, si la méthode est passée la date et à temps partiel (par exemple « 25.03.2010 19 »), affiche alors toutes les commandes sont effectuées dans cette période:
25.03.2010 19 : 22: 00
25.03.2010 19:44:00
25.03.2010 19:59:00
NHibernate ne peut rien faire qui ne peut être fait en sql, donc vous devez créer votre propre fonction d'analyse de date en C# comme Aaronaught suggère – Paco