У меня есть следующая модель домена для сопоставления с использованием ClassMaps / SubclassMaps
A - HasMany -> B (A должно быть таблицей)
B абстрактно в коде (и не должно быть таблицей)
C, D, E наследуют B и все имеют очень разные свойства. У каждого из них должна быть таблица с внешним ключом А.
Я получаю нужные мне таблицы, но не вижу, как отобразить HasMany
из объекта A, у которого есть одно свойство IList<B> SomeProperty
Я хотел бы определить в ClassMap<A>
, что SomeProperty
каскады на C, D, E
Это явно не работает, в 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>
отобразить на Cat and Horse более абстрактный класс Animal.