2
我已經在NHibernate中映射了一個類層次結構。就這麼簡單:Where type with type check「is」operator not use discriminator
class abstract Animal
class Dog : Animal
class Cat: Animal
class Cow: Animal
在映射我有ANIMAL_TYPE列設置鑑別值:
Dog -> dog
Cat -> cat
Cow -> cow
所有類型的查詢工作。除此之外,當我需要獲取兩種特定類型的對象時。我寫的是這樣的:
QueryOver.Of<Animal>().Where(animal => animal is Dog || theme is Cat)
而我沒有收到任何結果項目。當我看着生成的查詢,NHibernate的生成:
(this_.ANIMAL_TYPE = @p0 or this_.ANIMAL_TYPE = @p1)
這是很好的,但在@ P0和@ P1參數值中包含完整的類名稱,例如。
Zoo.Model.Cat
而不是鑑別器值。我該如何解決它?我是否必須保持我的鑑別器值與類型名稱同步?如果可能,我想避免它。