entity-framework - Entity Framework 代码优先与链接表的一对多关系映射

标签 entity-framework ef-code-first entity-relationship

有没有办法在两个表之间映射一对多关系,两个表之间有链接(联接)表?

最佳答案

从概念上讲,一对多关系只是多对多关系的一个特例。使用代码(第一种)方法,我们可以做完全相同的事情,定义多对多关系的简化版本。 使用 Entity Framework Tutorial 中使用的完全相同的示例,并假设从 StudentCourse 存在一对多关系,我们将有:

public class Student
{
    public Student() { }

    public int StudentId { get; set; }
    public string StudentName { get; set; }

    public virtual ICollection<Course> Courses { get; set; }
}

public class Course
{
    public Course() { }

    public int CourseId { get; set; }
    public string CourseName { get; set; }

// We don't need this side of the relationship
//  public virtual ICollection<Student> Students { get; set; }
}

...

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Student>()
                .HasMany<Course>(s => s.Courses)
                .WithMany(/* c => c.Students */)  // 'WithMany' goes empty
                .Map(c => {
                     c.MapLeftKey("Student_id");
                     c.MapRightKey("Course_id");
                     c.ToTable("StudentAndCourse");
                 });

    base.OnModelCreating(modelBuilder);
}

关于entity-framework - Entity Framework 代码优先与链接表的一对多关系映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7163725/

相关文章:

使用 Entity Framework Code First 的 C# 模型用户、好友请求和好友

database-design - 关联实体和关联关系属性的区别?

mysql - 如何在 MySql 工作台中连接表?

mysql - MySQL Workbench 的 EER 图编辑器能否表示具有部分/完全不相交/重叠特化关系的表?

asp.net-mvc - Razor不会在HiddenFor中渲染隐藏的精确PK

c# - 非必需对象字段上的 Entity Framework 验证错误

entity-framework - 我的 Seed() 方法从未在 Code First EF 5 中调用

c# - 使用 Fluent api 进行 3 种方式的多对多

asp.net - ef核心迁移插入数据

entity-framework - Entity Framework Code First 是否允许在单独的文件中进行流畅的映射?