我指的是这里的教程:
鉴于
public class Student
{
public int StudentId { get; set; }
public string StudentName { get; set; }
//StdId is not following code first conventions name
public int StdId { get; set; }
public virtual Standard Standard { get; set; }
}
public class Standard
{
public int StandardId { get; set; }
public string Description { get; set; }
public virtual ICollection<Student> Students { get; set; }
}
如果我错了,请纠正我。我认为这是错误的
modelBuilder.Entity<Standard>()
.HasMany<Student>(s => s.Students)
.WithRequired(s => s.Standard)
.HasForeignKey(s => s.StdId);
这是正确的
modelBuilder.Entity<Student>()
.HasRequired<Standard>(s => s.Standard)
.WithMany(s => s.Students)
.HasForeignKey(s => s.StdId);
因为StdId是Student的外键而不是Standard。
但文章说他们是一样的。
如果我是对的,请告诉我。
谢谢。
答案 0 :(得分:0)
在玩完代码后弄清楚了。
两个流畅的API是相同的,无论您是从学生还是标准遍历都无关紧要。
原因是这里只有一个外键,那就是StdId。