【发布时间】:2012-06-21 10:36:42
【问题描述】:
我有这个 edmx 模型(见下文),我想添加一个从 Order 到 Worker *-1 的额外关联,如红线所示,问题是,数据库已经有很多数据我不想擦除,是否可以在不重新创建表的情况下添加?
【问题讨论】:
标签: sql-server entity-framework
我有这个 edmx 模型(见下文),我想添加一个从 Order 到 Worker *-1 的额外关联,如红线所示,问题是,数据库已经有很多数据我不想擦除,是否可以在不重新创建表的情况下添加?
【问题讨论】:
标签: sql-server entity-framework
只需让 EF 在您的开发环境中创建一个新数据库并使用一些数据库差异。用于将更改脚本从旧数据库更改为新数据库的工具。 VS 2010 Premium 和 Ultimate 包含此差异。工具,如果您安装Database Generation tools power pack,您甚至可以直接从 EDMX 设计器中使用它。
另一个流行的差异工具是例如SQL Compare by RedGate。
【讨论】:
仅仅因为您开始使用实体设计器并不意味着您每次都必须完全重新创建数据库。
如果您从更改的模型生成 SQL,您应该能够很容易地找到引用您的新关系的部分。这是您需要针对数据库运行的唯一部分 - 只需将其拆分为自己的文件即可。如果有疑问,请保存旧 SQL 文件的副本,添加您的关系,生成新文件并创建差异以确保。
或者,如果您对 EF 如何表示数据和关系有很好的理解,您可以手动更改数据库。只要数据库和模型准确一致,EF 并不真正关心数据库是如何做到的。
【讨论】: