首页 > 解决方案 > EntityFramework Codefirst 从数据库更新

问题描述

我知道这不是使用 EntityFramework 的设计方法,但我可以更轻松地在 SQL Management Studio 中设计数据库以创建索引、链接外键等……所有这些都是可视化的。但是我真的很想在将来为客户部署更新时使用自动数据库更新。

我在 SQL Management Studio 中设计了原始数据库,然后首先从该数据库创建了 EntityFramework 代码。但是,到目前为止,如果我想添加另一个表,我最终会删除所有内容,然后从 SQL Management Studio 重新生成数据库。这对于我的框架开发的第一部分来说没问题,但现在事情开始变得有点复杂了。

我试图学习代码优先机制,但​​一些更复杂的项目让我感到厌烦,我没有太多时间来分配这个。我希望在 SQL Management Studio 中有一种混合设计方式,然后利用 EntityFramework 中内置的数据库部署功能。

标签: entity-framework

解决方案


我正在努力让 POCO 反向生成器在这里运行,但有一些问题。最终,我认为这就是我想要走的路。但我确实找到了一个使用 VS2019 中内置的现有工具的临时解决方法,直到我让该工具工作为止。

  1. 我复制了模型的名称,因为我对连接字符串进行了自定义初始化。

  2. 删除模型文件

  3. 我右键单击我的解决方案中放置 codefirst 文件的文件夹,然后添加新项目

  4. 选择 ADO.NET Entity Data Model 并命名 id 与步骤 1 中的相同

  5. 从数据库中选择代码优先

  6. 取消选择保存连接字符串(它不会覆盖并且需要的已经在app.config中)

  7. 选择要导入的表

  8. 在我的情况下,我取消选择复数对象名称

  9. 结束

  10. 使用自定义初始化程序更新主模型文件

  11. 在包管理器控制台中输入:add-migration(我假设您已经设置了迁移)

  12. 命名迁移

  13. add-migration [第 12 步中的名称](这适用于迁移)

看起来步骤很多,但实际上并非如此。到目前为止,玩了几天,我没有遇到任何问题。


推荐阅读