如何解决从数据库更新EntityFramework Codefirst
我知道这不是使用EntityFramework的设计方法,但是我可以更轻松地在SQL Management Studio中设计数据库以直观地创建索引,链接外键等。但是我真的很想在将来向客户部署更新时使用自动数据库更新。
我在SQL Management Studio中设计了原始数据库,然后首先从该数据库创建了EntityFramework代码。但是,如果到目前为止我想添加另一个表,我最终会删除所有内容,然后从SQL Management Studio重新生成数据库。对于我的框架开发的第一部分来说,这是可以的,但是现在事情开始变得有些复杂了。
我尝试过学习代码优先机制,但是一些更复杂的项目让我有些难受,因此我没有太多时间来分配它。我希望在SQL Management Studio中采用一种混合的设计方式,然后利用EntityFramework中内置的数据库部署功能。
解决方法
我正在努力使POCO反向生成器在此处运行,但是有一些问题。最终,我认为这就是我要走的路。但是我确实找到了VS2019中内置的现有工具的临时解决方法,直到该工具正常工作为止。
-
我复制了模型名称,因为我对连接字符串进行了自定义初始化。
-
删除模型文件
-
我右键单击在解决方案中放置代码优先文件的文件夹,然后添加新项
-
选择ADO.NET实体数据模型,并将其ID命名为与步骤1中的ID相同。
-
首先从数据库中选择代码
-
取消选择保存连接字符串(不会覆盖它,并且所需的一个已经在app.config中)
-
选择要导入的表
-
在我的情况下,我取消选择了Pluralize对象名称
-
完成
-
使用自定义初始化程序更新主模型文件
-
在包管理器控制台中,输入:add-migration(我假设您已经设置了迁移)
-
为迁移命名
-
添加迁移[步骤12中的名称](适用迁移)
这似乎有很多步骤,但实际上并非如此。到目前为止,经过几天的试用,我还没有遇到任何问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。