【问题标题】:How do i update DBContext & pocos after DB schema change?数据库架构更改后如何更新 DBContext 和 pocos?
【发布时间】:2017-10-09 16:11:52
【问题描述】:

我一直使用 edmx 文件方法,只运行“从数据库更新”。现在我首先使用现有数据库中的代码。

当 DBA 更改数据库架构时,如何更新我的 dbcontext 文件和 POCO 以匹配?这就是迁移的目的吗?我是否只需删除模型文件夹中的所有内容并重新创建?

【问题讨论】:

  • 就我个人而言,我只是手动创建类,并在需要时编辑现有的类。它被称为“代码优先”,因为通常您会先更改代码,然后相应地更新数据库。
  • 有道理。我想我只是习惯了 db 第一种方式。
  • 如果我没有控制数据库,我不应该先写代码吗?

标签: asp.net-mvc entity-framework ef-code-first


【解决方案1】:

“代码优先”在 EF 中有两种不同的含义。它既是建模工作流程,也是映射样式。您可以使用数据库优先建模进行代码优先映射。您只需在更改数据库后重新生成实体类型,或手动更改它们以匹配数据库更改。这就是所谓的“来自现有数据库的代码优先”

【讨论】:

  • "您只需在更改数据库后重新生成实体类型" 我该怎么做这部分? 1. 删除 dbcontext 文件,然后自动生成 pocos 2. 右键单击​​ > 添加 ado entity thingy >code first from existing, etc?
  • 是的。或者将其放到一个单独的项目中,然后将它们移动到您的主项目中。
  • 酷,谢谢。如果我无法控制数据库,那么先编写代码是不是一个坏主意?我不允许进行架构更改。我首先切换到代码,因为 edmx 文件看起来总是那么大,而代码首先看起来“更轻”。这是我切换的唯一原因。
  • 代码优先到现有数据库是我最喜欢使用 EF 的方式。您非常了解“轻量级”,这是在 EF Core 中进行数据库优先建模的唯一方法。使用 attributes/fluent/etc 自定义对象和数据库之间的映射就容易多了。而且 EDMX 映射复杂,IMO 不值得学习。
猜你喜欢
  • 1970-01-01
  • 2019-04-19
  • 1970-01-01
  • 2013-09-22
  • 2010-10-07
  • 1970-01-01
  • 2021-12-11
  • 2011-03-05
  • 2019-10-14
相关资源
最近更新 更多