如何使用Entity Framework代码优先迁移将列添加到数据库?

时间:2017-01-30 18:46:29

标签: c# entity-framework

我有一个简单的ASP.NET MVC应用程序,它首先使用Entity Framework代码。

这是项目的结构:有三层:

  • 数据层 - 包含数据库上下文
  • 网络层 - 包含接口(网页)
  • 模型图层 - 包含EF的模型
  • 服务层 - 用于映射数据层和模型的Calles

我在模块模型

中添加了一个名为ImageUrl的新属性
public class Module:TEntity
{
        [ScaffoldColumn(false)]
        public string ModuleCode { get; set; }
        public string DisplayName { get; set; }
        public string Description { get; set; }
        [ScaffoldColumn(false)]
        public DateTime CreatedDate { get; set; }
        [ScaffoldColumn(false)]
        public string CreatedUser { get; set; }
        [ScaffoldColumn(false)]
        public string IsActive { get; set; }
        [ScaffoldColumn(false)]
        public string ParentModule { get; set; }
        [ScaffoldColumn(true)]
        public string ImageUrl { get; set; }
}

和我的dbContext课程如下:

public DbSet<Module> WebMstModule { get; set; }

public Direct2M3DBContext() : base(new DatabaseFactory().GETDATABASE(SystemType.DIRECT2M3).getConnectionStr()) {  
}

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Model.Direct2M3.Module.Module>().ToTable("WebMstModule");
}

然后我使用

启用了迁移
Enable-Migrations -ContextTypeName Direct2M3DBContext

然后

Add-Migration AddImageUrl

添加迁移输出

脚手架迁移&#39; AddImageUrl&#39;。 此迁移文件的Designer代码包含当前Code First模型的快照。此快照用于在您构建下一次迁移时计算模型的更改。如果您对要在此迁移中包含的模型进行其他更改,则可以通过运行Add-Migration AddImageUrl&#39;来重新构建它。试。

最后

update-database -verbose

没有错误,但生成的迁移文件最终为空和向下方法

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

        public override void Down()
        {
        }
}

并且未在服务器上创建新列。

我错过了哪些步骤?

谢谢..

0 个答案:

没有答案