У меня возникают трудности с получением кода EF в первую очередь для создания базы данных из следующих объектов:
public class Person : Animal
{
public int Id { get; set; }
public Animal Pet { get; set; }
}
public class Animal
{
public string Name { get; set; }
}
Таким образом, концептуально человек - это животное с именем, и у него есть домашнее животное, которое такжеживотное с именем.Мой контекст содержит массив людей, но не животных, поэтому Animal не содержит ключ:
public DbSet<Person> People { get; set; }
Если я пытаюсь создать базу данных с использованием кода, сначала получаюследующая ошибка:
System.Data.Entity.ModelConfiguration.ModelValidationException: One or more validation errors were detected during model generation:
MyProject.Database.Animal: : EntityType 'Animal' has no key defined. Define the key for this EntityType.
Animals: EntityType: EntitySet 'Animals' is based on type 'Animal' that has no keys defined.
Если я удаляю поле Pet
, я получаю таблицу с полями Id
и Name
, что является моим ожидаемым поведением.Аналогично, если я удаляю наследование Animal
, я получаю таблицу с полями Id
и Pet_Name
, что опять-таки является моим ожидаемым поведением.То, что я пытаюсь получить, - это таблица с полями Id
, Name
и Pet_Name
.
Не могу не почувствовать, что я упускаю что-то очень простое здесь, потому что я сделалэто на других ОРМ без проблем.Может кто-нибудь сказать мне, как это сделать с EF 6.2?