J'essaie de créer une association pour charger une liste d'objets parents basée sur un champ de date d'objet enfant. Je ne veux que des objets parents où la date est> = une date donnée.NHibernate CreateCriteria ne fonctionne pas correctement avec l'association et les dates
Le problème est que lorsque j'utilise la date d'aujourd'hui ou la veille, elle renvoie les bons enfants. Mais si j'utilise une date plus éloignée dans le temps, comme 11-2-2010, cela inclut les enfants qui ont une date < 11-2-2010.
Voici le code:
public IList<Parent> GetByDate(string parentId, DateTime date) {
IList<Parent> list = null;
using (ISession session = SessionFactory.OpenSession()) {
list = session.CreateCriteria(typeof(Parent))
.Add(Expression.Eq("parent_id", parentId))
.CreateCriteria("children")
.Add(Expression.Gt("end_date", date)).List<Parent>();
}
return list;
}
et la mise en correspondance des parents:
<id name="id">
<generator class="native"/>
</id>
<property name="parent_id" />
<bag name="children" lazy="false">
<key column="parent_id" />
<one-to-many class="Child" />
</bag>
Merci à l'avance!
est-ce que vous pouvez donner un exemple en utilisant mon code \ mapping? Je pense que je comprends ce que vous dites, mais un exemple serait kewl. – chipman