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