【问题标题】:How to Add Entity Without Recreating Tables如何在不重新创建表的情况下添加实体
【发布时间】:2012-06-21 10:36:42
【问题描述】:

我有这个 edmx 模型(见下文),我想添加一个从 OrderWorker *-1 的额外关联,如红线所示,问题是,数据库已经有很多数据我不想擦除,是否可以在不重新创建表的情况下添加?

【问题讨论】:

    标签: sql-server entity-framework


    【解决方案1】:

    只需让 EF 在您的开发环境中创建一个新数据库并使用一些数据库差异。用于将更改脚本从旧数据库更改为新数据库的工具。 VS 2010 Premium 和 Ultimate 包含此差异。工具,如果您安装Database Generation tools power pack,您甚至可以直接从 EDMX 设计器中使用它。

    另一个流行的差异工具是例如SQL Compare by RedGate

    【讨论】:

    • 嗨,我前段时间下载了这个插件,但不知道我需要哪个选项。对于我需要做的事情,您可以推荐任何好的教程吗?或者你可以给我一些我可以搜索的关键字。
    • 所以你应该尝试所有这些以学习新的东西......但我真的不明白你怎么会错过Generate Migration T-SQL
    【解决方案2】:

    仅仅因为您开始使用实体设计器并不意味着您每次都必须完全重新创建数据库。

    如果您从更改的模型生成 SQL,您应该能够很容易地找到引用您的新关系的部分。这是您需要针对数据库运行的唯一部分 - 只需将其拆分为自己的文件即可。如果有疑问,请保存旧 SQL 文件的副本,添加您的关系,生成新文件并创建差异以确保。

    或者,如果您对 EF 如何表示数据和关系有很好的理解,您可以手动更改数据库。只要数据库和模型准确一致,EF 并不真正关心数据库是如何做到的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-21
      • 1970-01-01
      • 1970-01-01
      • 2020-07-15
      • 2018-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多