Fluent API EF教程错误

时间:2016-02-13 09:01:37

标签: c# entity-framework-6 extension-methods ef-fluent-api

我指的是这里的教程:

http://www.entityframeworktutorial.net/code-first/configure-one-to-many-relationship-in-code-first.aspx

鉴于

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。

但文章说他们是一样的。

如果我是对的,请告诉我。

谢谢。

1 个答案:

答案 0 :(得分:0)

在玩完代码后弄清楚了。

两个流畅的API是相同的,无论您是从学生还是标准遍历都无关紧要。

原因是这里只有一个外键,那就是StdId。