Наследование EF Code-First
У меня есть базовый объект, который я не хочу отображать в БД как сущность, я только хочу, чтобы свойства были добавлены к объекту, который отображается в БД:
Не сопоставленный объект (не знаю, имеет ли это значение, но базовый объект находится в другой сборке):
public class BaseObject
{
public virtual string Prop1 { get; set; }
public virtual string Prop2 { get; set; }
}
Сопоставленный объект:
public class ChildObject : BaseObject
{
public virtual string Prop3 { get; set; }
public virtual string Prop4 { get; set; }
public virtual string Prop5 { get; set; }
}
Что зарегистрировано в DbContext
public DbSet<ChildObject> ChildObjects { get; set; }
Что бы я хотел увидеть в БД
table:ChildObject
col:Prop1 (from BaseObject)
col:Prop2 (from BaseObject)
col:Prop3
col:Prop4
col:Prop5
Чтобы возобновить, я хочу иметь одну таблицу в БД, которая имеет дочерние и базовые свойства.
Это ошибка, которую я сейчас получаю:
Тип namespace.ChildObject не был сопоставлен. Убедитесь, что тип не был явно исключен с помощью метода Ignore или аннотации данных NotMappedAttribute. Убедитесь, что тип был определен как класс, не является примитивным, вложенным или универсальным и не наследуется от EntityObject.
Я копался, но не могу найти, как это сделать.
Есть идеи?
РЕДАКТИРОВАТЬ:
@Kyle Trauberman прав, однако, по некоторым причинам, кажется, есть проблема с наследованием от базового класса в другой сборке. Я просто сделал это.
class BaseObjectClone : BaseObject { } /* BaseObject being in another assembly */
public class ChildObject : BaseObjectClone {
public virtual string Prop3 { get; set; }
public virtual string Prop4 { get; set; }
public virtual string Prop5 { get; set; }
}