【问题标题】:How to update database driven Code First EF model?如何更新数据库驱动的 Code First EF 模型?
【发布时间】:2014-09-15 13:09:52
【问题描述】:

我有一个通过对现有数据库进行逆向工程生成的 EF 代码优先模型 - EF 6 支持的核心方案之一。

我现在对数据库进行了更新,我想在模型中反映这些更新,但我根本找不到更新生成模型的机制。在“旧”EDMX 世界中,我可以从数据库更新模型,但我看不到如何在 VS 2013 中使用 EF 6 执行此操作?

我已尝试针对新数据库运行迁移,但未对 POCO 进行任何更改。

【问题讨论】:

  • “代码优先”不是意味着应该更改模型并因此更新数据库吗?如果直接更改了数据库,那么听起来您要么需要重新生成模型,要么直接更新模型。 (我通常是后者。)
  • afaik 这是正常的。从“代码优先”的另一点来看,您拥有 first。首先是代码,然后是迁移,最后是更新数据库。否则,您将处于“现有数据库上的代码优先”状态,再次声明,当前不支持您需要的内容。
  • 为避免混淆,我建议您阅读以下内容:stackoverflow.com/questions/5446316/…

标签: entity-framework ef-code-first entity-framework-migrations poco edmx


【解决方案1】:

要在代码优先项目中更新您的数据库,请执行以下操作:

  1. 通过检查源代码找出数据库上下文的名称,在以下步骤中我假设它是ConfigDbContext
  2. 通过菜单Tools -> NUGET Package Manager -> Package Manager Console打开PM控制台
  3. 键入以下内容:
    PM> add-migration nameofmigration -context ConfigDbContext
    PM> update-database -context ConfigDbContext
    注意:nameofmigration 替换为您选择的任何唯一名称,以便您轻松记住所做的更改。迁移代码将使用时间戳和此名称命名。
  4. 如果您收到成功消息,请打开 SQL Management Studio,连接到您的数据库,或者,如果您已经打开它,请刷新并查看更改。

注意:如果您收到一条消息,提示您应该更新 EF 核心工具,here is 如何做到这一点。
例如:
PM> Install-Package Microsoft.EntityFrameworkCore.Tools -Version 2.2.0
将版本号 2.2.0 替换为警告中显示的较新版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多