.NET 4.5,实体框架和Oracle的问题

时间:2013-12-18 14:31:39

标签: asp.net .net oracle entity-framework odac

我正在使用.NET 4.0,Visual Studio 2010以及Entity Framework和Oracle开发一个应用程序(我们称之为A,一个ASP.NET MVC3网站)。一切顺利。

对于其他应用程序(我们称之为B),我安装了Visual Studio 2012,它安装了新版本的.NET框架。因为,我不能让A正常工作。

我得到的错误是:Oracle 11.2.0.3.0不支持APPLY

我已经进行了一些挖掘,我找到了一个解决方案:当我需要处理A时卸载.NET framework 4.5,并在需要处理B时安装它。这不是很多 令人满意的。

看起来Oracle没有成功将EF查询转换为Oracle查询。但为什么 ?我仍然针对相同版本的.NET框架(4.0)......

我目前正在尝试使用不同的ODAC版本,以查看问题是否可能来自ODAC与新版.NET之间的不兼容。

您对可能导致这种情况以及如何解决问题有任何其他想法吗?

谢谢!

对不起我的英语,我不是母语人士。

1 个答案:

答案 0 :(得分:2)

Oracle不支持CROSS / OUTER APPLY,EF生成的一些查询需要这些运算符。有关详细信息,请参阅thisthis

话虽如此 - 根据评论,EF5 / .NET Framework 4.5中似乎存在一种回归,其中EF开始在查询中创建Apply节点,而在EF4中未创建Apply节点。它was previously investigated但显然没有涵盖这种情况。

此回归实际上已在EF6中修复(这可能不是非常有用,因为此时目前没有Oracle EF6提供程序(至少不是来自Oracle))