.net - Entity Framework 5 混合 Oracle 和 SQL Server

标签 .net sql-server oracle entity-framework

我有 2 个数据层 DLL 项目。一种是访问 Oracle 表,另一种是访问 SQL Server。当在单独的项目中使用时,每个都可以独立工作。

当我创建一个包含两个 DLL 的项目时,在查询 Oracle 表时出现以下错误:

Schema specified is not valid. Errors: Model.ssdl(2,48) : error 0172:
All SSDL artifacts must target the same provider. The Provider 'Oracle.ManagedDataAccess.Client' is different from 'Oracle.ManagedDataAccess.Client' that was encountered earlier. Model.ssdl(2,81) : error 0169: All SSDL artifacts must target the same provider. The ProviderManifestToken '2008' is different from '11.2' that was encountered earlier.

疯狂的是,在我的 1 个包含 2 个数据层项目的项目中,如果我注释掉一个使用 SQL Server 数据层的函数(即使此时实际上从未调用它),那么它就可以工作。不知何故,它的代码的存在导致了上面的错误。如何混合使用 SQL Server 和 Oracle Entity Framework ?

最佳答案

当我将 Oracle DB 连接和查询移至单独的方法中时,我的代码开始工作。

我的印象是我应该为所有查询保持 Oracle 连接打开,因为否则效率会很低,但是 apparently这实际上是在幕后自动完成的。现在两个连接的范围完全独立,它可以正常工作了。

为什么?不知道...

关于.net - Entity Framework 5 混合 Oracle 和 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24458741/

相关文章:

c# - 锁定属性

c# - 为什么我不能在 LINQ-To-XML 中选择单个元素?

mysql - SQL查找连续的季度

sql - 行包含无效的封闭字符数据或分隔符

sql - 如何从sql server 2012中的表中删除自动增量

mysql - PL SQL Procedure (Oracle) 比较 where 子句中的变量

c# - RabbitMQ 在 .CreateModel() 上抛出 TimeOut 异常

.net - 添加服务引用失败

c# - 使用哪个隔离级别来防止读取数据?

sql - 是否有任何程序可以缩小 sql 脚本文件的大小?