我试图使用devart dotConnect 8.4 + EF6.1来执行这个代码块
var menus = (from m in dbSet
from p in m.RegraAcesso.Perfis
from u in p.Usuarios
where u.Id == userId && m.Pai.RegraAcesso.Token.Equals(module)
select m)
.Include(p => p.Pai)
.ToList();但是它抛出了这个错误:
描述:在执行当前web请求时发生了未处理的异常。请查看堆栈跟踪以获得有关错误的更多信息,以及它起源于代码的位置。
异常详细信息:OracleDatabase11g及更低版本不支持System.NotSupportedException:交叉应用。要正确运行此LINQ语句,需要Oracle 12c或更高版本。如果需要使用Oracle数据库11g或更低版本运行此语句,请重写它,以便将其转换为您使用的Oracle版本所支持的SQL。
我使用的是:dotConnect for Oracle8.4.171.0+ EF6.1 (代码优先)+Oracle11g
它使用dotConnect for Oracle7.5.164.0+ EF4 (代码第一)+Oracle11g
发布于 2014-06-13 10:31:22
从12c版本开始,Oracle服务器支持外部应用/交叉应用结构。我们在dotConnect中为Oracle实现了避免生成外部应用/交叉应用(如果可能的话),但如果不使用外部应用/交叉应用,则无法翻译某些LINQ查询。在这种情况下,您应该重写LINQ语句。
此外,随着实体框架引擎的发展,外部应用/交叉应用结构可能会开始生成,在这种情况下,以前的应用程序不会生成。因此,我们还建议您创建一个小型测试项目,并与CodePlex支持联系:https://entityframework.codeplex.com/
https://stackoverflow.com/questions/24150275
复制相似问题