我们正在尝试构建一个同时使用 Oracle 和 SQL Server 的数据访问层(不同时)。
我们使用 EF Model-first 来创建模型并创建用于构建数据库的 SQL 脚本。我们的第一个想法是创建 2 个 EDMX 文件,每种类型一个,并根据客户的需求使用适当的文件。我们使用 Oracle 和 SQL Server 数据库生成工作流程和 DDL 生成模板来为每个数据库创建脚本。
我们的主要问题是,当数据库模式发生更改时,我们不想删除并重新创建数据库,而只想创建迁移脚本来根据我们的模型更新数据库(客户端有许多数据将丢失)。
我们使用 EF power pack 来提取 SQL Server 的迁移脚本,但 Oracle 没有类似的工具。
我们希望帮助找到一个好的数据层(如果可能且不复杂,则为 Oracle 和 SQL Server 提供 1 个 EDMX),以及一种从我们的模型生成数据库更改的好方法,以便在新应用程序发布时更新现有客户端数据库
我们发现这是一个起点http://msdn.microsoft.com/en-us/data/ff830362但没有提及 Oracle 支持。
我们尝试过代码优先和 EF 迁移,但 Oracle 在数据库创建和迁移方面再次失败。
关于我们如何实现这一目标有什么建议吗?
谢谢
无法为 SQL Server 和 Oracle 提供单一 EDMX。 EDMX 由三部分组成:CSDL(实体定义)、SSDL(数据库定义)、MSL(这些定义之间的映射)。 SSDL 必须始终针对具体数据库,因此您至少需要针对 Oracle 和 SQL Server 的单独 SSDL,如果幸运的话,您也不需要单独的 MSL(映射必须完全相同,如果您使用任何工具来生成映射,则可能不会发生这种情况)数据库)。
因此,您始终需要至少部分 EDMX 文件作为第二个数据库并手动维护它。
如果您需要支持 Oracle 的数据库迁移,您必须寻找 Oracle(或第三方)的工具。例如RedGate提供支持架构迁移的工具SQL服务器 and Oracle.
Visual Studio Premium 和 Ultimate 版本还提供了用于比较数据库架构的工具。默认情况下,它仅支持 SQL Server,但蟾蜍扩展还应该添加对 Oracle 的支持。
一旦您拥有这些工具中的任何一个,您只需将客户服务器上部署的架构与新架构进行比较,该工具就会为您创建迁移脚本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)