【问题标题】:Model change detection ASP.NET code first migrations模型更改检测 ASP.NET 代码首次迁移
【发布时间】:2014-06-23 13:13:28
【问题描述】:

我已经添加了

public IEnumerable<Comment> Comments { get; set; }

到 ASP.net MVC 项目中的模型。我运行以下命令在包控制台中生成迁移

PM> Add-Migration AddCommentsToDevice

由此产生的迁移并没有对模型进行更改

public partial class AddCommentsToDevice : DbMigration
{
    public override void Up()
    {
    }

    public override void Down()
    {
    }
}

关于迁移语法或导致检测的任何提示?

【问题讨论】:

    标签: asp.net entity-framework code-first database-migration


    【解决方案1】:

    你增加了一点。您需要正确配置关系 - 最好使用 fluent api。将此用于导航属性:

    public virtual ICollection<Comment> Comments { get; set; }
    

    重要 - 始终使用 ICollection,而不是 IEnumerable 用于导航属性并使它们成为虚拟 - 多亏了这个 ef 将能够跟踪更改。

    然后在您的 DbContext 中添加以下代码:

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Model>().HasKey(x => x.Id);
            modelBuilder.Entity<Model>().HasMany(x => x.Comments);
    
            base.OnModelCreating(modelBuilder);
        }
    

    我假设与 Comments 相关的类名为 Model。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-17
      • 1970-01-01
      • 2016-12-10
      • 2014-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多