В моей иерархии животныхFluent NHibernate отображение наследования
Базовых один:
public class AnimalMap : ClassMap<Animal>
{
public AnimalMap()
{
Schema("dbo");
Table("Animals");
Id(x => x.Id).Column("ID").GeneratedBy.Identity();
Map(x => x.FoodClassification).Column("FoodClassification");
Map(x => x.BirthDate).Column("BirthDate");
Map(x => x.Family).Column("Family");
DiscriminateSubClassesOnColumn("ClassType").Not.Nullable();
}
}
Один подкласс:
public class DogMap : SubclassMap<Dog>
{
public DogMap()
{
DiscriminatorValue(@"Dog");
Map(x => x.Field).Column("Field");
}
}
Так что вопрос:
Где столбец " ClassType "! = Dog, Animal должен быть типом объекта, как базовый. У каждого, у кого нет класса отображения, должен быть базовый (супер).
Как это сделать?
Я не думаю, что это возможно, если у вас есть класс типа 'Жираф: Animal', как бы значение столбца если вы никогда не указывали значение дискриминатора для жирафа. – Matthew
, но что делать, если мне не нужна классификация для всех, кто не является собакой? я имею в виду каждый ?, даже жираф, должен быть животным, но не жирафом. – Roar
. Каким будет значение дискриминатора для других типов? – Matthew