我使用Code First范例编写了一个ASP.Net MVC 3应用程序,当我对模型进行更改时,Entity Framework会自动尝试通过DROP和CREATE语句重新创建基础SQL Server数据库.问题是应用程序托管在第三方远程服务器上,这限制了我可以拥有的数据库的数量,并且似乎不允许我以编程方式执行"CREATE DATABASE ..."语句,因为我收集此错误消息:
数据库"master"中的CREATE DATABASE权限被拒绝.
有没有办法阻止实体框架删除并尝试重新创建整个数据库,而是让它简单地删除表并重新创建它们?
在手动创建数据库并运行应用程序后,我也会收到以下错误,因为实体框架尝试修改数据库:
无法检查模型兼容性,因为数据库不包含模型元数据.确保已将IncludeMetadataConvention添加到DbModelBuilder约定中.
我一直在尝试使用MVC 3的EF 4.1(代码优先).我正在考虑应用程序何时需要更改.我测试了几个场景.我喜欢在模型(我的POCO)发生变化时手动编辑数据库的想法.
更改模型时出现ASP.NET错误:
"自创建数据库以来,支持'CTCMContext'上下文的模型已经发生了变化.手动删除/更新数据库......"
现在,它说我可以" 手动更新数据库 ",但我做了,仍然得到相同的错误.我错过了什么!!?!
编辑
这与EF生成的模型哈希有关吗?
migration data-migration entity-framework ef-code-first entity-framework-4.1
migration ×1