Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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
C# 使用实体框架将数据库从SQL Server切换到Oracle需要进行哪些更改?_C#_.net_Asp.net Mvc_Database_Entity Framework - Fatal编程技术网

C# 使用实体框架将数据库从SQL Server切换到Oracle需要进行哪些更改?

C# 使用实体框架将数据库从SQL Server切换到Oracle需要进行哪些更改?,c#,.net,asp.net-mvc,database,entity-framework,C#,.net,Asp.net Mvc,Database,Entity Framework,我使用实体框架开发了一个MVC web应用程序,SQL Server作为后端。我使用了数据库优先的方法 现在我的客户想要切换到Oracle数据库。我正在进行从SQL Server切换到Oracle数据库的影响分析。我的客户认为这就像更改连接字符串一样简单 我的问题是,考虑到SQL Server数据库的表名、表结构、关系和属性都是相同的,我需要在项目中做哪些更改才能从MS SQL切换到Oracle 我是否需要为Oracle数据库创建一个新的edmx文件,还是只需要更改连接字符串并使用相同的上下文

我使用实体框架开发了一个MVC web应用程序,SQL Server作为后端。我使用了数据库优先的方法

现在我的客户想要切换到Oracle数据库。我正在进行从SQL Server切换到Oracle数据库的影响分析。我的客户认为这就像更改连接字符串一样简单

我的问题是,考虑到SQL Server数据库的表名、表结构、关系和属性都是相同的,我需要在项目中做哪些更改才能从MS SQL切换到Oracle

我是否需要为Oracle数据库创建一个新的
edmx
文件,还是只需要更改连接字符串并使用相同的上下文

此外,如果将来需要扭转这种情况,那么是否有一个良好的实践或解决方案来支持这两个数据库


谢谢。

oracle对项(表、索引、列)有30个字符的限制,因此,如果您在任何命名中过于冗长,则必须重命名一组项


我不喜欢使用edmx。使用代码优先的模型可能会更容易。

oracle对项(表、索引、列)有30个字符的限制,因此,如果您在任何命名中过于冗长,则必须重命名一组项


我不喜欢使用edmx。使用代码优先的模型可能更容易。

作为一个从事这项工作的项目的人,我的最佳建议是,你射杀任何想使用Oracle的人,并隐藏他们的身体。或者,你必须得到一个ado.net的Oracle实现(我们使用了devart),并花费你所有的时间来破解成吨的死角案例。例如,我们必须创建一个框架来做大量的scut工作。Scut工作是为了使数据库快速运行而必须对其进行的调整,所有这些对于每种类型的RDBMS都是唯一的……oracle数据库将如何构建?我们谈论的是哪个oracle版本?我首先针对oracle数据库开发代码,这里有一些调整。我相信,如果表的数量不是微不足道的,那么从现有MS SQL数据库进行传输将成为一场噩梦。如果您的客户机为您提供一个完成的数据库,其中数据库首先为您的现有代码生成一个兼容的模型,那么它应该与切换连接字符串一样微不足道。但是,如果他们想让您成为构建“兼容”数据库的人,请注意。您可能会在标识符名称(表名、列名等)方面遇到问题。在SQL Server中,典型的设置将执行不区分大小写的检查,但在Oracle中,它将区分大小写。祝你好运。谢谢威尔、格雷克40和@sstan的评论。然而,我仍然不知道如何进行。我是否要删除现有的edmx并创建一个新的edmx?还是我只需要更改连接字符串,并期望所有内容都到位?(我想使用Oracle11g,而且表的数量要少。)作为一个从事这项工作的项目的人,我最好的建议是你射杀任何想使用Oracle11g的人,并隐藏他们的身体。或者,你必须得到一个ado.net的Oracle实现(我们使用了devart),并花费你所有的时间来破解成吨的死角案例。例如,我们必须创建一个框架来做大量的scut工作。Scut工作是为了使数据库快速运行而必须对其进行的调整,所有这些对于每种类型的RDBMS都是唯一的……oracle数据库将如何构建?我们谈论的是哪个oracle版本?我首先针对oracle数据库开发代码,这里有一些调整。我相信,如果表的数量不是微不足道的,那么从现有MS SQL数据库进行传输将成为一场噩梦。如果您的客户机为您提供一个完成的数据库,其中数据库首先为您的现有代码生成一个兼容的模型,那么它应该与切换连接字符串一样微不足道。但是,如果他们想让您成为构建“兼容”数据库的人,请注意。您可能会在标识符名称(表名、列名等)方面遇到问题。在SQL Server中,典型的设置将执行不区分大小写的检查,但在Oracle中,它将区分大小写。祝你好运。谢谢威尔、格雷克40和@sstan的评论。然而,我仍然不知道如何进行。我是否要删除现有的edmx并创建一个新的edmx?还是我只需要更改连接字符串,并期望所有内容都到位?(我想使用Oracle11g,表的数量更少。)我没有使用verbose。您建议首先实现代码,那么我是否需要再次创建所有实体并删除现有的实体?我不使用verbose。您建议首先实现代码,那么我是否需要再次创建所有实体并删除现有实体?