EF迁移的Web.config配置
我正在对我的项目实施代码优先迁移,并且希望不必在程序包管理器控制台中始终使用添加迁移和更新数据库。 我希望数据库的更新自动发生。
出于这个原因,我更新了我的web.config文件来做到这一点。 我删除了我的数据库,但由于某种原因,当我启动应用程序时,它不会创建数据库。 难道我做错了什么?
这是我的web.config
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<contexts>
<context type="AuctionService.DataAccess.AuctionContext, AuctionService.DataAccess">
<databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[[AuctionService.DataAccess.AuctionContext, AuctionService.DataAccess], [AuctionService.DataAccess.Migrations.Configuration, AuctionService.DataAccess]], EntityFramework">
</databaseInitializer>
</context>
</contexts>
</entityFramework>
编辑
我的代码是在WCF服务中,当我调试此服务时,我得到了这个
服务器在处理请求时遇到错误。 异常消息是'无法更新数据库以匹配当前模型,因为有未决的更改并且自动迁移已禁用。 将挂起的模型更改写入基于代码的迁移或启用自动迁移。 将DbMigrationsConfiguration.AutomaticMigrationsEnabled设置为true以启用自动迁移。'
尝试确保您已在AuctionService.DataAccess.Migrations.Configuration
类的构造函数中将AutomaticMigrationsEnabled属性设置为true
。
一旦这样做,如果存在潜在的数据丢失,您也可能会遇到异常情况; 您可以通过将AutomaticMigrationDataLossAllowed属性设置为true
来忽略此操作。
例如:
internal sealed class Configuration : DbMigrationsConfiguration<AuctionContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
// AutomaticMigrationDataLossAllowed = true; // You may want this also, but be careful.
}
}
我不确定你是否可以在.config文件中设置它(找不到这方面的文档)。
我相信当您最初设置迁移时,您可以通过运行以下命令让生成的Configuration类为您设置该属性: Enable-Migrations –EnableAutomaticMigrations
上一篇: Web.config configuration for EF Migrations
下一篇: Lose EF Code First Migration when working on different TFS branches?