3个表格(为简洁起见,仅显示相关栏目);
[QuestionSet]
<int> Id (Pk)
...
[Link_Set_to_Question]
<int> Id (pk)
<int> fk_Question <-- Foreign key to Questions Table
<int> fk_SetId <-- Foreign key to Questions Table
<int> DisplayOrder
...
[Questions]
<int> Id (Pk)
...
我的实体模特。
public class QuestionSet
{
[Key]
public int Id { get; set; }
...
[ForeignKey("fk_SetId")]
public virtual ICollection<Link_Set_to_Question> QuestionSet { get; set; }
public QuestionSetDetails()
{
this.QuestionSet = new List<Link_Set_to_Question>();
}
}
public class Link_Set_to_Question
{
[Key]
public int Id { get; set; }
public int fk_SetId { get; set; }
public int fk_QuestionId { get; set; }
[ForeignKey("Id")]
public virtual Questions Question { get; set; }
public Relations_Questions_To_Sets()
{
this.Question = new Questions();
}
}
当我添加第二个类时,问题条目全部为空。 大概是因为它试图将问题的ID映射到Link_Set_to_Question的主键而不是fk_QuestionId。
那么,有没有一种方法来构建我的对象/属性以便这可以工作,或者我是否需要深入研究模型构建器。 (在这种情况下,我如何定义它以使Set具有许多链接对象,并且每个链接对象都有一个问题?)
答案 0 :(得分:1)
modelBuilder
.Entity<QuestionSet>()
.HasMany<Link_Set_to_Question>(set => set.QuestionSet)
.WithRequired(linkSet => linkSet.Question)
.HasForeignKey(linkSet => linkSet.fk_QuestionId)
.WillCascadeOnDelete(true);