模型更改检测ASP.NET代码首次迁移
我补充说模型更改检测ASP.NET代码首次迁移,asp.net,entity-framework,code-first,database-migration,Asp.net,Entity Framework,Code First,Database Migration,我补充说 public IEnumerable<Comment> Comments { get; set; } 由此产生的迁移并没有得到对模型的更改 public partial class AddCommentsToDevice : DbMigration { public override void Up() { } public override void Down() { } } 有关于迁移语法或导致检测的原因的提示吗?您
public IEnumerable<Comment> Comments { get; set; }
由此产生的迁移并没有得到对模型的更改
public partial class AddCommentsToDevice : DbMigration
{
public override void Up()
{
}
public override void Down()
{
}
}
有关于迁移语法或导致检测的原因的提示吗?您添加了一些。您需要正确配置关系-最好使用fluent api。将此属性用于导航属性:
public virtual ICollection<Comment> Comments { get; set; }
公共虚拟ICollection注释{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);
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilder.Entity().HasKey(x=>x.Id);
modelBuilder.Entity()有许多(x=>x.Comments);
基于模型创建(modelBuilder);
}
我假设与注释相关的类被命名为Model
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Model>().HasKey(x => x.Id);
modelBuilder.Entity<Model>().HasMany(x => x.Comments);
base.OnModelCreating(modelBuilder);
}