У меня есть сценарий, где у меня есть базовый класс в качестве одного объекта, а затем другой объект, который является производным от другого базового класса.Оба имеют значение в моем домене и могут использоваться отдельно.
public class MyBaseClass
{
int ID { get; set; }
string Name { get; set; }
}
public class MyChildClass
{
string AdditionalField { get; set; }
}
Я сопоставил оба с использованием Fluent nHibernate с использованием ClassMap следующим образом:
public class MyBaseClassMap : ClassMap<MyBaseClass>
{
Id("MyBaseClassID");
Map(x => x.Name);
}
public class MyChildClassMap : SubclassMap<MyChildClass>
{
Map(x => x.AdditionalField);
}
Что происходит, когда я пытаюсьполучить копию базового класса, используя сопоставление для дочернего класса.Как будто он не знает разницы между базовым и дочерним классом или выбирает неправильное отображение для него.Я подтвердил это, наблюдая за оператором SQL и его присоединением к дочерней таблице и выбирая дополнительный столбец.Есть ли способ заставить его использовать правильную карту?