如何使用NHibernate条件查询根据附加条件加载关联

如何使用NHibernate条件查询根据附加条件加载关联,nhibernate,nhibernate-criteria,Nhibernate,Nhibernate Criteria,假设我有一只猫,它有两个特性: 宠爱的小猫 第二只小猫 这些小猫因其等级而受到歧视 当装载一只猫时,我希望将等级为“1”的小猫装载 最喜欢的小猫,排名为“2”的小猫将被选中 第二只小猫 基础数据库如下所示: table Cat ---------------- CatId table Kitten ----------------- KittenId CatId Rank <class name="Cat"> ... other stuff <one-to-o

假设我有一只猫,它有两个特性:

  • 宠爱的小猫
  • 第二只小猫
这些小猫因其等级而受到歧视

当装载一只猫时,我希望将等级为“1”的小猫装载 最喜欢的小猫,排名为“2”的小猫将被选中 第二只小猫

基础数据库如下所示:

table Cat
----------------
CatId


table Kitten
-----------------
KittenId
CatId
Rank
<class name="Cat">
  ... other stuff
  <one-to-one name="FavoriteKitten" class="Kitten" property-ref="Cat" cascade="all-delete-orphan" />
  <one-to-one name="SecondFavoriteKitten" class="Kitten" property-ref="Cat" cascade="all-delete-orphan" />
</class>
我的映射看起来像:

table Cat
----------------
CatId


table Kitten
-----------------
KittenId
CatId
Rank
<class name="Cat">
  ... other stuff
  <one-to-one name="FavoriteKitten" class="Kitten" property-ref="Cat" cascade="all-delete-orphan" />
  <one-to-one name="SecondFavoriteKitten" class="Kitten" property-ref="Cat" cascade="all-delete-orphan" />
</class>
麻烦的是,一旦上膛,不管是小猫还是小猫 第二只小猫是同一只小猫:排名为“2”的那只

我是否在标准中遗漏了什么?还是我要做这件事
错误的方法?

在nhibernate邮件列表中的迭戈帮助我看到了我方法的错误。我把一切都安排错了

根据他的建议,我决定按照数据库中小猫的位置绘制地图;作为列表