У меня проблемы с получением правильной структуры базы данных из моих моделей.У моих моделей есть наследование, и Entity Framework не может понять это самостоятельно (я думаю).
Классы.У меня есть несколько таких настроек, которые очень похожи.Показывает только одно:
public class Answer {
// ...
}
public class PartialAnswer {
public int Id { get; set; }
public int AnswerId { get; set; }
public virtual Answer Answer { get; set; }
// ...
}
public class PartialSortedAnswer : PartialAnswer {
public string Key { get; set; }
// ...
}
public class PartialRepeatingSortedAnswer : PartialSortedAnswer {
public int Set { get; set; }
// ...
}
public class MultipleAnswersRepeatingSorted : Answer {
public virtual IEnumerable<Partials.PartialRepeatingSortedAnswer> Answers { get; set; }
}
Я установил унаследованные сущности с этим кодом в моем контексте:
builder.Entity<PartialSortedAnswer>();
builder.Entity<PartialRepeatingSortedAnswer>();
builder.Entity<MultipleAnswersRepeatingSorted>();
// ...
При создании миграции Entity Framework создает новую таблицу PartialAnswers
.В этой таблице есть следующие столбцы:
- Id
- AnswerId
- Дискриминатор
- Ключ
- Набор
- MultipleAnswersRepeatingSortedId
- ...
Я понимаю, все столбцы, все они основаны на различных моих типах.Единственное, что я не могу понять, это последний столбец MultipleAnswersRepeatingSortedId
.Entity Framework создает отношение внешнего ключа к таблице Answers
для этого столбца.Почему EF не использует уже определенный AnswerId
?
Я пытался указать имя столбца, но это, похоже, ни на что не влияет.