【发布时间】:2019-05-16 12:41:37
【问题描述】:
我无法从我的模型中获取正确的数据库结构。我的模型有一些继承,这是 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>();
// ...
创建迁移实体框架时会创建一个新表PartialAnswers。此表包含以下列:
- 身份证
- AnswerId
- 鉴别器
- 钥匙
- 设置
- MultipleAnswersRepeatingSortedId
- ...
我了解所有列,这些都是基于我拥有的不同类型。我似乎唯一想不通的是最后的MultipleAnswersRepeatingSortedId 专栏。实体框架为此列创建与Answers 表的外键关系。为什么 EF 不使用已经定义的AnswerId?
我尝试指定列名,但这似乎没有任何影响。
【问题讨论】:
标签: c# .net entity-framework-core