在mvc中启用自动迁移

Vin*_*ini 2 asp.net-mvc entity-framework database-migration ef-migrations

我正在创建一个MVC应用程序,我经常添加新类.由于类彼此相关并且已经创建的表中的测试数据没有意义,我更喜欢使用AutomaticMigrations.

我使用以下命令将数据库设置为初始状态.

Update-Database –TargetMigration: $InitialDatabase
Run Code Online (Sandbox Code Playgroud)

但问题是它总是不起作用.它出错的可能原因是什么?我不熟悉Code First Migrations.

在运行时声明DbContext已更改时,通常会抛出该错误.在启用迁移之前,我确保现有表中没有与已删除表的依赖关系.我也收到一个错误

Either the parameter @objname is ambiguous or the claimed @objtype (COLUMN) is wrong.
Run Code Online (Sandbox Code Playgroud)

我正在寻找有关该主题的一般帮助.

Muk*_*iya 6

对于自动迁移,首先应在Database Context构造函数中设置Database Initializer.

public class YourDBContext: DbContext 
{        
    public YourDBContext(): base("ConnectionString") 
    {
         Database.SetInitializer<YourDBContext>(new CreateDatabaseIfNotExists<YourDBContext>());
    }
Run Code Online (Sandbox Code Playgroud)

您还可以创建CreateDatabaseIfNotExists<YourDBContext>使用重写种子方法实现的自定义数据库初始化程序,以提供初始数据.

其次,您应该使用Package Manager Console中的命令启用自动迁移 Enable-Migrations -EnableAutomaticMigrations

然后,Update-Database在程序包管理器控制台中使用命令将向数据库应用您在上次迁移后所做的所有挂起的更改.

更新:Verbose与update database命令一起使用以查看生成的脚本

Update-Database –Verbose
Run Code Online (Sandbox Code Playgroud)