【发布时间】:2014-08-17 20:41:31
【问题描述】:
我的系统开始时是一个单一的 WinForms 应用程序,它有一个使用 Entity Framework 的单一数据库。下线,数据库被分支以包含一个用新表扩展的新系统。主 Employee 表已重命名为 Person,所有关联的 FK 引用都在列中使用术语 person 重命名。
此后,现有系统在数据库结构方面发生了变化,添加了新表。
类似:
现在我想将 2 个数据库排成一行,将 Person 表保持在 Employee 之上。我还需要将 2 个实体框架放在一起。我需要一些关于如何做到这一点的提示和指示。
幸运的是,新系统仍在 UAT 中,因此尚未上线。我有这方面的基本人口脚本。
我使用 nHydrate 来维护两个实体框架 - DB First。数据库方面的事情我可以应付。但是,我不确定让我的实体框架恢复正常的最佳方式。
我使用了一些工具来同步数据库,例如 Red Gate 的 SQL Compare。 VS2013 还有一个不错的 SQL Schema Compare。
我对不同的方法有几个想法:
想法1
- 通过 EF 数据库设计器手动添加更改
- 生成新数据库
- 编写要从初始系统复制到新数据库的数据的脚本
- 为新系统运行 Population 脚本。
思想2
- 通过 EF 数据库设计器手动添加更改
- 升级现有系统
- 为新系统运行人口脚本
思想3
- 以某种方式将 CSDL、MSL、SSDL 文件合并到带有 WinMerge 的实体框架中
- 升级现有系统
- 为新系统运行人口脚本
我将努力完成这个任务,可能会使用第 3 个想法,除非有人很快在此处发布回复。我想知道社区将如何处理这个问题。
【问题讨论】:
标签: sql sql-server merge entity-framework-5