【问题标题】:Entity Framework mapping of object containing list of same objects包含相同对象列表的对象的实体框架映射
【发布时间】:2013-05-09 08:25:38
【问题描述】:

目前在我的代码中我正在做这样的事情

public class Subject
{
    private List<Subject> _prerequisites;
}

一个学科可以有很多前提条件(也是学科),学科可以是很多学科的前提条件。

我们最初使用类型化数据集将数据保存到数据库中,我们的表格如下所示:

我们现在想从使用类型化数据集迁移到实体框架,但我不确定如何创建映射。从数据库生成 EF 并没有真正起作用,因为它只是删除每个表并使用外键作为导航属性。据我了解,EF 不需要另一个实体来建立多对多关系。如果有人可以提供帮助,那就太好了!干杯!

【问题讨论】:

    标签: c# sql-server entity-framework entity-framework-4 ado.net


    【解决方案1】:

    想通了。需要在继承 DbContext 的类的 OnModelCreating 方法中覆盖 this 的默认模型构建。

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Subject>().
            HasMany(m => m.Prerequisites).
            WithMany()
            .Map(m =>
                {
                    m.ToTable("SubjectPrerequisite");
                    m.MapLeftKey("SubjectId");
                    m.MapRightKey("PrerequisiteId");
                });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多