Ich versuche, eine Verknüpfung zu erstellen, um eine Liste der übergeordneten Objekte basierend auf einem untergeordneten Objekt Datumsfeld zu laden. Ich möchte nur übergeordnete Objekte, bei denen das Datum> = ein bestimmtes Datum ist.NHibernate CreateCriteria funktioniert nicht ordnungsgemäß mit Zuordnung und Daten
Das Problem ist, wenn ich entweder das heutige Datum oder den Vortag verwende, gibt es die richtigen Kinder zurück. Aber wenn ich ein Datum weiter hinten in der Zeit, wie 11-2-2010 verwende, ist es einschließlich Kinder, die ein Datum < 11-2-2010 haben. Hier
ist der 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;
}
und die Zuordnung für Parent:
<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>
Vielen Dank im Voraus!
jede chance Sie können ein Beispiel mit meinem Code \ Mapping? Ich denke ich verstehe was du sagst, aber ein Beispiel wäre kewl. – chipman