实体框架核心外键很多

时间:2018-03-22 08:03:22

标签: c# asp.net entity-framework-core

我在ASP.Net Core MVC应用程序的上下文中使用Entity Framework Core。数据模型的片段如下所示:

public class Seminar
{       
   public int ID { get; set; }
   public string Name { get; set; }
   public Person Teacher { get; set; }
   public int TeacherID { get; set; }

   public IList<Person> Students { get; set; }

   public Seminar()
   {
      Students = new List<Person>();
   }
}

EF自动分配属性TeacherID以反映实体Teacher(外键)的ID。这在ASP.Net中使用非常方便。 to-many-reference Students是否有类似的概念?

最后,我想在ASP.Net中创建一个多选。因此,我需要为此研讨会分配Students的ID列表。

2 个答案:

答案 0 :(得分:0)

由于IList<Person> Students导航属性,EF将推断一对多关系,并且它将引用具有该名称的学生。这假设Person具有Seminar的外键。但是Person还应该有一个外键作为教师的研讨会,所以最后应该是一个多对多的关系,这需要一个流畅的API定义。有关更多info

的信息,请参阅此处

答案 1 :(得分:0)

你可以通过流利的api

来做到这一点
modelBuilder.Entity<Seminars>()
.HasMany(c => c.Students)
.WithOptional()
.Map(m => m.MapKey("StudentId"));