Jos*_*osh 3 c# asp.net-mvc entity-framework
好吧,我有一点背景如何到达这里。我正在重建一个旧的MVC3网站。我最近有一个Database First MVC5 EF6项目,该项目具有要使用的UI包。我复制了现有项目,并从中剥离了几乎所有内容(所有项目特定的POCO模型,DbContext,视图等),基本上,我只是将新的Identity内容与UI框架一起留在其中。
我创建了脚本来将数据库从SQLMembership手动转换为Identity 2.0(以及一些用于密码转换的代码)。一切正常,编译完成,我可以以现有用户身份登录。
下一步,我创建了一个新的临时项目(我不想弄乱实际的项目名称空间),从新数据库为所有现有表生成POCO模型,将它们复制到我的项目中,并手动编写了DataModel Fluent API代码。我在模型生成过程中遇到了一些验证错误,我没有解决任何问题。但是现在,当尝试执行任何将访问已存在__MigrationHistory的DataModel的操作时,我得到一个异常错误。
进一步调查EF SQL调试输出后,它正在尝试运行脚本来创建数据库中的所有表,由于它已经存在,因此在尝试创建__MigrationHistory表时最终抛出错误(尽管我应该注意它没有记录)。
那我在做什么不同?EF如何知道不要在我的其他工作正常的项目中尝试这样做,并且在DataModel结构和POCO Model结构方面与我的新项目相同?我该怎么解决?我知道我可以做自己的初始化程序(如何在Entity Framework 4.3 Code First中禁用__MigrationHistory表?),但我更希望了解正在发生的事情并在源代码处进行修复,而不是在源代码周围进行修复。
删除项目中现有的Migrations文件夹。从现有数据库中删除表“ __MigrationHistory”。现在您可以重建此历史记录表:
PM> enable-migrations
PM> add-migration Initial -IgnoreChanges
PM> update-database
Run Code Online (Sandbox Code Playgroud)
-IgnoreChanges 创建空的Up()方法,并且不对现有对象进行任何更改。
| 归档时间: |
|
| 查看次数: |
2085 次 |
| 最近记录: |