我第一次和迁移使用EF代码有一个ASP.NET MVC项目。迁移与实体框架6码第一
我想一个新的属性添加到一个类。为此,我创建了迁移代码,以便在与该类相关的表中添加特定列。
我的迁移代码如下:
public partial class Add_DataRequisicao_to_BiblRequisicao : DbMigration
{
public override void Up()
{
AddColumn("dbo.BiblRequisicoes", "DataRequisicao", c => c.String(nullable: false, defaultValue: "01/01/1900 00:00"));
}
public override void Down()
{
DropColumn("dbo.BiblRequisicoes", "DataRequisicao");
}
}
而且属性添加到类如下:
[Required]
[Display(Name = "Data Requisição")]
public string DataRequisicao { get; set; }
当我发布该项目并转到项目网站,我收到以下错误消息:
无法更新数据库以匹配当前模型,因为有挂起的c挂起和自动迁移被禁用。将挂起的模型更改写入基于代码的迁移或启用自动迁移。将DbMigrationsConfiguration.AutomaticMigrationsEnabled设置为true以启用自动迁移。
检查数据库,我看到迁移是成功运行的,因为该列已创建。在迁移表中,还有一个新条目表明迁移运行。
迁移项:
MigrationId: 201704261436437_Add_DataRequisicao_to_BiblRequisicao
ContextKey: WebAppInvestigacaoMultimedia.Migrations.Configuration
Model: 0x1F8B0800000...
ProductVersion: 6.1.3-40302
我不明白为什么我得到错误信息,如果迁移成功的名称和属性的类型RAN是一样的附加列表。
您是如何创建迁移的?你使用了Add-Migration还是你自己添加了这个类? – Gimly
您是否使用自动或基于代码的迁移?从代码示例中提供的2种方法中,我认为您正在使用'Add-Migrations',这意味着基于代码的迁移。在包管理器控制台中使用'-Verbose -Script'标志来查看数据库脚本和执行迁移过程的步骤。 –
@Gimly我用添加迁移 – miguelbgouveia