0
比方說,我有一個具有兩個屬性貓:如何使用NHibernate的標準查詢基於附加條件加載協會
- FavoriteKitten
- SecondFavoriteKitten
這些小貓被歧視他們的等級。
當加載貓時,我想讓等級爲「1」的小貓爲 FavoriteKitten,而等級爲「2」的小貓爲 SecondFavoriteKitten。
的基礎數據庫是這樣的:
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>
我的條件查詢看起來像
Cat cat = sess.CreateCriteria(typeof(Cat))
.CreateAlias("FavoriteKitten", "kt1")
.Add(Expression.Eq("kt1.Rank", "1"))
.CreateAlias("SecondFavoriteKitten", "kt2")
.Add(Expression.Eq("kt2.Rank", "2"))
.UniqueResult();
,一旦加載的麻煩,既FavoriteKitten和 SecondFavoriteKitten是相同的小貓:一個與Ra 「2」的nk。
我是否遺漏了某些標準?或者我會以這種錯誤的方式去解決這個問題?