子オブジェクトの日付フィールドに基づいて親オブジェクトのリストをロードする関連付けを作成しようとしています。日付が特定の日付以上の親オブジェクトのみが必要です。
問題は、今日の日付または前日のいずれかを使用すると、正しい子が返されることです。しかし、2010 年 11 月 2 日など、さらに遡った日付を使用すると、2010 年 11 月 2 日より前の日付を持つ子が含まれます。
コードは次のとおりです。
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;
}
親のマッピング:
<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>
前もって感謝します!