繁体   English   中英

EF6 中的多对多关系与映射器类中的其他列

[英]Many-Many relationship in EF6 with other colums in mapper class

我有现有的表,包括映射表。 我必须设置实体框架注释。 我对如何实现这一目标感到困惑。 有三张桌子,

  1. 模型(ModelId,ModelName),
  2. 部门(部门 ID,部门名称)
  3. ModelDepartmentMapper(ModelDepartmentMapperId、ModelId、DepartmentId、ModelStatus)

我已经创建了类:

public class Model
{
    public int ModelId { get; private set; }
    public string ModelName { get; private set; }
    public virtual ICollection<Department> Departments { get; private set; }
}

public class Department
{
    public int DepartmentId { get; private set; }
    public string DepartmentName { get; private set; }
    public virtual ICollection<Model> Models { get; private set; }
}

public class JoinModelDepartment
{
    public int JoinModelDepartmentId { get; private set; }
    public Guid ModelId { get; private set; }
    public Guid DepartmentId { get; private set; }
    public int ModelStatus { get; private set; }
}

在 DBContext 中:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    //base.OnModelCreating(modelBuilder);

    modelBuilder.Entity<Model>()
        .HasMany<Department>(s => s.Departments)
        .WithMany(c => c.Models)
        .Map(cs =>
        {
            cs.MapLeftKey("ModelGuid");
            cs.MapRightKey("DepartmentGuid");
            cs.ToTable("JoinModelDepartment");
        });
}

请指导我如何在映射表中添加ModelStatus 我需要手动创建它还是有办法做到这一点?

我倾向于做的是将这些类型的映射移动到它们自己的类文件中。 这里有一个精彩的教程:

https://www.entityframeworktutorial.net/code-first/move-configurations-to-seperate-class-in-code-first.aspx

这使您可以单独绘制每个表,并从中构建数据库。

因此,在您的情况下,您将拥有一个 Model、Department 和一个 ModelDepartmentMapper 类文件。 从那里您可以设置所有相关列以及它们如何链接到另一个表以及列类型 IE VARCHAR 等

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM