EF Code First 删除数据库后的问题!急!

htcfan 2015-07-16 02:30:44
更改模型后,不知为何,EF的Migration 工具失效,数据库的表结构总是无法更新,干脆放弃迁移。

只好采取终极手段,将原数据库(LocalDb)删除,更换了一个数据库连接字符串(正常Code first 情况下,应能根据字符串生成新的数据库及表,尽管没有数据),重新运行工程。

问题来了,当访问数据库是总是抛出 “ 无法将数据库更新为与当前模型匹配,因为存在挂起的更改并且禁用了自动迁移。将挂起的模型更改写入基于代码的迁移或启用自动迁移。”的异常。

我的理解,我原有的数据库都删除了,就不存在迁移一说。
我现在希望能根据更改后的模型生成新的数据库就行,原有数据也不要了。

网上查了好多,都不能解决问题,总不能不让我更改模型吧?
...全文
765 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
rong736 2016-01-29
  • 打赏
  • 举报
回复
我也非常讨厌它这个大坑! 几乎有放弃使用EF的冲动了
htcfan 2015-07-17
  • 打赏
  • 举报
回复
重装EF后解决了。 nnd,折腾了2天。
htcfan 2015-07-16
  • 打赏
  • 举报
回复
dbcontext初始化时加入: public EFDbContext(string conString ):base(conString) { Database.SetInitializer(new DropCreateDatabaseIfModelChanges<EFDbContext>()); } 即模型更改的时候删除原有数据库,新建数据库的初始化策略,仍然无效。 抓狂~~
  • 打赏
  • 举报
回复
就你的问题而言,我估计,你需要手动删除你的解决方案里的一堆动态产生(并被强行加入解决方案的工程中)的文件,恢复到最初始的状态,然后卸载工程、重新加载工程,才有可能恢复。
  • 打赏
  • 举报
回复
随便说两句吧: EF 说什么“因为存在挂起的更改”,这就说明它缺乏基本的灵活性(都没有数据库了,还提醒人家存在个“挂起的更改”干什么?还不赶紧给人家创建数据库啊?!难道人家手写的一堆实体模型还没有说明最终需要达到的目标吗?)。 实际上死死纠结于它自己的“模型”,造成了EF缺乏各方面灵活性,它总是给用户提出各种令人抓狂的“提示”,而极少主动去提供“最终可用性”。这真的很像东方人更常见的、许多“小”人的做事风格。所以我选择放弃 EF。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧