我正在尝试在Azure上部署MVC4 EF5代码优先应用程序。发布后,我在网站上收到此错误:
错误。处理您的请求时出错。
我猜那是因为这些表没有在数据库中创建?
我的关系字符串:
Data Source=tcp:6666666.database.windows.net,1433;Initial Catalog=eatart_db;User Id=kasperskov@6666666;Password=yourmother
我在配置中启用了自动迁移,我在部署时执行它:
internal sealed class Configuration : DbMigrationsConfiguration<EatArt.Models.EatArtDb>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
}
}
在我的Application_Start(global.asax)中:
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<EatArtDb>());
也。此通知在我的天蓝色门户网站上弹出:
服务器在检索指标时遇到错误。重试 操作
我在这里缺少什么?我做错了吗?
答案 0 :(得分:0)
我和EF有类似的问题。我的方法是放弃使用DropCreateDatabaseIfModelChanges
并切换到使用迁移。这是关于code first migrations
将您的DropCreate
行更改为:
Database.SetInitializer(new MigrateDatabaseToLatestVersion<EatArtDb, Configuration>());
您已启用自动迁移,但未在初始化程序中使用它们。
答案 1 :(得分:0)
正如Ben Tidman建议的那样,我将包管理器控制台中的Update-Database命令运行到Azure数据库上。这触发了表的创建,我能够立即部署页面视图。
聚苯乙烯。当然要将Trusted_Connection=false
和encrypt=true
添加到连接字符串中。