我首先使用Entity Framework 5.0数据迁移和代码.当我向模型添加新字段并在包管理器控制台中执行以下命令时.
"Add-migration AddedField"
Run Code Online (Sandbox Code Playgroud)
我得到的只是一个名为"n_AddedField"的空迁移,up和down方法不包含任何逻辑.
我尝试了很多东西,重新安装EF nuget包,清理我的解决方案,重建,手动删除所有生成的文件和目录.
然后我决定废弃我的所有迁移并重新开始,然后它变得奇怪.删除所有迁移和数据库中的迁移历史表后,我使用CreateDatabaseIfNotExists初始化程序重新创建了数据库.完成此操作后,我应该能够创建一个新的初始迁移.但是当我尝试创建新的迁移时,我收到一条错误消息,指出存在待定迁移,并列出了我刚从项目中删除的所有迁移.
我不知道为什么以及EF如何回忆这些迁移.我甚至尝试搜索文件内容,查看迁移是否保存在其他地方或其他地方.但没什么......
当scott hansleman演示在舞台上时,数据迁移看起来非常整洁,但对于实际工作,我开始寻找替代方案.
当项目开始时,我们使用的是EF 4.x并且稍后将其切换到5.0,但是由于交换机我成功添加了一堆迁移.
有谁知道如何解决这个问题?基本上我只是希望能够添加迁移,并生成带有更改的sql脚本.
在EF项目中,是否有设置AutomaticMigrationsEnabled的最佳实践?
更多声明:
在我们的团队修改模型后,我们通常在Package Manager Console中运行"add-migration"和"update-databse"命令.当其他开发人员运行该项目时,会出现此错误:
"无法删除数据库,因为它正在使用中"
每次发生这种情况时,第一个修饰符应该是Check In整个项目而其他修饰符必须GET修改对象.在许多情况下,我们不想检查已经创建的模型和迁移!
这种情况很烦人,有没有解决这类问题的方法.提前致谢.
我使用Entity Framework Code First开始了我的项目.当我准备好时,我将我的数据库和代码上传到我的主机提供商.一切正常.
我需要在我的一个类中添加一个新字段,我不想丢失数据库中的数据.因此,我尝试了一些关于使用Code First Migrations的博客文章.我做了以下事情:
当我访问该网站时,我收到以下错误消息:自创建数据库以来,支持'blahblah'上下文的模型已更改.考虑使用Code First Migrations来更新数据库.
我究竟做错了什么?