Asp.net mvc 4 在MVC4中使用代码优先的数据库迁移

Asp.net mvc 4 在MVC4中使用代码优先的数据库迁移,asp.net-mvc-4,Asp.net Mvc 4,我首先使用代码创建了我的MVC4应用程序,相应地,数据库和表也生成了,现在我想删除表的一列(从后端)。所以我只想知道是否有任何方法可以根据数据库中的更改自动在代码中发生更改。通过使用迁移技术的PackageManager控制台 PM> enable-migrations -EnableAutomaticMigrations 在代码配置中,执行以下操作 public Configuration() { AutomaticMigrationsEnabled = true; A

我首先使用代码创建了我的MVC4应用程序,相应地,数据库和表也生成了,现在我想删除表的一列(从后端)。所以我只想知道是否有任何方法可以根据数据库中的更改自动在代码中发生更改。

通过使用迁移技术的PackageManager控制台

PM> enable-migrations -EnableAutomaticMigrations
在代码配置中,执行以下操作

public Configuration()
{
    AutomaticMigrationsEnabled = true;
    AutomaticMigrationDataLossAllowed = true;
}
现在,当模型更改时,请执行以下操作

PM> update-database
通过代码实现

对数据库使用DropCreateDatabaseAlways初始值设定项。在应用程序域中首次使用上下文时,它将始终重新创建数据库:

Database.SetInitializer(new DropCreateDatabaseAlways<YourContextName>());

若您使用的是代码优先技术,那个么从模型中删除列并运行迁移脚本(googleit),这将从数据库中删除列。但您想要的是相反的,我不确定是否可以这样做。

但我不想手动更改模型我想要的是,当我通过后端在数据库中进行更改时,该模型或其他代码资源应该自动得到更改。有办法吗?我不知道,所以想确认一下。(感谢回复)@user3698892 hmmm不,即使在数据库优先的方法中也不可能,当后端数据库更改时,您必须刷新/更新模型。@user3698892如果您觉得我的答案有帮助,请接受或投票。即使我不知道,但无论如何都要尝试确认谢谢您的建议。
public class MyInitializer : DropCreateDatabaseAlways<YourContextName>
{
     protected override void Seed(MagnateContext context)
     {
         // seed database here
     }
}
Database.SetInitializer(new MyInitializer());