2

nhibernate には、多対 1 のマッピングに関連付けられた 2 つのクラスがあります。

<class name="Employee" table="Employee">
  ..
  <bag name="orgUnits">
    <key column="id" />
    <one-to-many name="OrgUnit" class="OrgUnit">
  </bag>
  ..
</class>

条件式を使用して、コレクションが null (つまり、組織なし) の Employees のみを取得したいと思います。次のようなものです。

IList employeesWithNoOrgUnit = sess.CreateCriteria(typeof(Employee))
    .Add( Expression.IsNull("OrgUnits") )
    .List();

これは、期待どおりにコレクションをフィルタリングしません。

4

1 に答える 1

5

同僚は、機能する 1 つの方法を見つけました。

IList employeesWithNoOrgUnit = sess.CreateCriteria(typeof(Employee))
    .Add( Restrictions.IsEmpty("OrgUnits") )
    .List();
于 2009-06-03T03:27:17.153 に答える