2

我正在使用 .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 之间的不兼容。

您对可能导致该问题的原因以及如何解决它有任何其他想法吗?

谢谢 !

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

4

1 回答 1

2

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

话虽如此 - 根据评论,EF5/.NET Framework 4.5 中似乎存在回归,其中 EF 开始在查询中创建应用节点,而在 EF4 中未创建应用节点。以前曾对其进行过调查,但显然没有涵盖这种情况。

这种回归实际上已在 EF6 中修复(这可能不是很有帮助,因为目前没有 Oracle EF6 提供程序(至少不是来自 Oracle))

于 2013-12-18T23:56:36.370 回答