0
我使用功能NHibernate項目中,有一個問題,我不能在我自己解決:兩個子類映射到同一個表
class Cake {}
class CheeseCake : Cake {}
class VanillaCheeseCake : CheeseCake {}
class CakeMap : Class<Cake> {
Table("CAKE");
Id(x => x.Id, "ID")
.GeneratedBy.GuidComb();
Map(x => x.CakeType);
}
class CheeseCakeMap : Subclass<CakeMap> {
Table("CHEESE_CAKE");
KeyColumn("ID");
Map(x => x.CheeseAmount);
}
class VanillaCheeseCakeMap : Subclass<CheeseCakeMap> {
}
我想要的是擁有兩個CheeseCake
和VanillaCheeseCake
同一張桌子。 Cake.CakeType
可以用作判別器。我也嘗試將VanillaCheeseCakeMap
定義爲CakeMap
的ClassMap,但是然後nhibernate找不到ID映射?
那麼,這是否'Cake'發揮作用?與其他兩個人在同一張桌子上,還是在另一張桌子上? – 2014-08-28 18:02:20
'Cake'只是一個基類,它有一些共同的屬性,並被存放在一個單獨的「CAKE」表中。 – 2014-08-29 06:35:11
我其實不確定這是可能的與FNH。如果使用Subclass <>映射映射某些內容,則不會得到''CheeseCakeMap''所需的'DiscriminateSubClassesOnColumn'方法。 – 2014-08-29 13:37:56