Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 实体框架Oracle和Sql Server-如何构建独立于数据库的应用程序_Sql Server_Database_Oracle_Entity Framework 4.1_Migration - Fatal编程技术网

Sql server 实体框架Oracle和Sql Server-如何构建独立于数据库的应用程序

Sql server 实体框架Oracle和Sql Server-如何构建独立于数据库的应用程序,sql-server,database,oracle,entity-framework-4.1,migration,Sql Server,Database,Oracle,Entity Framework 4.1,Migration,我们正在尝试构建一个数据访问层,以便同时使用Oracle和SQL Server(而不是同时使用) 我们首先使用efmodel来创建模型,然后使用createsql脚本来构建数据库。我们的第一个想法是创建两个EDMX文件,每种类型一个,并根据客户的需要使用适当的文件。我们使用Oracle和SQL Server数据库生成工作流和DDL生成模板为每个数据库创建脚本 我们的主要问题是,当数据库模式发生更改时,我们不想删除并重新创建数据库,而只想创建迁移脚本来根据我们的模型更新数据库(客户机有许多将丢失的

我们正在尝试构建一个数据访问层,以便同时使用Oracle和SQL Server(而不是同时使用)

我们首先使用efmodel来创建模型,然后使用createsql脚本来构建数据库。我们的第一个想法是创建两个EDMX文件,每种类型一个,并根据客户的需要使用适当的文件。我们使用Oracle和SQL Server数据库生成工作流和DDL生成模板为每个数据库创建脚本

我们的主要问题是,当数据库模式发生更改时,我们不想删除并重新创建数据库,而只想创建迁移脚本来根据我们的模型更新数据库(客户机有许多将丢失的数据)

我们使用EF power pack提取SQL Server的迁移脚本,但Oracle的迁移脚本与EF power pack完全不同

我们需要帮助找到一个好的数据层(如果可能且不复杂的话,Oracle和SQL Server都需要1个EDMX)和一个好的方法来从我们的模型生成数据库更改,以便在新的应用程序发布时更新现有的客户机数据库

我们发现这是一个起点 但没有提到对Oracle的支持

我们尝试了代码优先和EF迁移,但Oracle在数据库创建和迁移方面再次失败

关于如何实现这一点,有什么建议吗


谢谢

对于SQL Server和Oracle,没有办法同时使用单个EDMX。EDMX由三部分组成:CSDL(实体定义)、SSDL(数据库定义)、MSL(这些定义之间的映射)。SSDL必须始终以具体数据库为目标,因此Oracle和SQL Server至少需要单独的SSDL,如果幸运的话,您也不需要单独的MSL(映射必须完全相同,如果您使用任何工具生成数据库,这可能不会发生)

因此,对于第二个DB,您始终需要至少部分EDMX文件,并手动维护它

若您需要支持Oracle的DB迁移,则必须从Oracle(或第三方)查找该工具。例如,为和提供了支持模式迁移的工具

VisualStudionPremium和Ultimate edition还提供了用于比较数据库模式的工具。默认情况下,它只支持SQL Server,但也应该添加对Oracle的支持


一旦有了这些工具,您只需将部署在客户服务器上的架构与新架构进行比较,该工具就可以为您创建迁移脚本。

我在这个主题上找到的最好的文章来自。 试着从第五部分到第九部分


这里提到了很多关于甲骨文的问题。。。这很有帮助

Thanx拥有这种独立性有点复杂。您是否曾经尝试过Telerik的开放存取ORM?它似乎可以实现我们在许多数据库(包括SQL Server和Oracle)中所寻找的功能,并且可以处理迁移?