的兒童的我有以下域模型使用ClassMaps/SubclassMaps類映射到抽象類
A至映射 - 的hasMany - > B(A應該是表)
B是在代碼抽象(也應該不成爲表格)
C,D,E繼承B並且都具有非常不同的屬性。他們每個人都應該與外鍵A.表
我得到我想要的表,但我看不出如何從擁有一個屬性實體的地圖HasMany
IList<B> SomeProperty
我想定義ClassMap<A>
,關於C,d,E
SomeProperty
級聯這顯然是行不通的,在ClassMap<A>
:
HasMany<C>(x => x.B).Cascade.All();
HasMany<D>(x => x.B).Cascade.All();
HasMany<E>(x => x.B).Cascade.All();
正如我不能重複B.
例子:
public class Person
{
public virtual IList<Animal> Animals { get; set; }
public void AddAnimal(Animal animal)
{
Animals.Add(animal);
}
}
public abstract class Animal
{
//some common properties
}
public class Cat : Animal
{
//some cat properties
}
public class Horse : Animal
{
//some horse properties
}
在這種情況下,我想ClassMap<Person>
超過抽象類動物映射到貓和馬。
好像這個邊緣案例不支持nhibernate。 – Firo