Page 1 of 1

OUTER APPLY is not supported by Oracle

Posted: Tue 14 Sep 2010 16:37
by vajarov
Hi all -
I have a very simple case: two entities with 1-to-many relationship (e.g. one company-to-many-employees).
Case1 (works ok): I use Linq2Entities over the compiled DLL containing the model and using the ".Include" syntax I eagerly load the related entities (Employee) just fine.
Case2 (does not work): I expose the model via WCF data service. When I try to eagerly load the related entity on the client (via the ".Expand" method) I get the "OUTER APPLY is not supported by Oracle" exception.

Note - this problem does not occur when the relationship b/w entities is 1-to-1.

Can anyone please shed some light on this for me? Is there a known work-around?

G.

Posted: Fri 17 Sep 2010 11:20
by StanislavK
Could you please describe the situation in more details? Please specify the following:
- whether you are using a .edmx or .edml model;
- how exactly lazy loading is implemented for your WCF service;
- what are stack trace and details of the exception you are getting.

If possible, please send us a test project so that we are able to investigate the issue in details.

Posted: Thu 30 Sep 2010 17:45
by jacksparrow
I am running into the same error in our project. Please Advise.

Message:
OUTER APPLY is not supported by Oracle

Source:
Devart.Data.Oracle.Entity

StackTrace:
at Devart.Data.Oracle.Entity.k.a(DbApplyExpression A_0)
at System.Data.Common.CommandTrees.DbApplyExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
at Devart.Common.Entity.f.a(DbExpression A_0, String A_1, TypeUsage A_2, o& A_3)
at Devart.Common.Entity.f.a(DbProjectExpression A_0)
at System.Data.Common.CommandTrees.DbProjectExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
at Devart.Common.Entity.f.a(DbExpression A_0, String A_1, TypeUsage A_2, o& A_3)
at Devart.Common.Entity.f.a(DbSortExpression A_0)
at System.Data.Common.CommandTrees.DbSortExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
at Devart.Common.Entity.f.a(DbExpression A_0, String A_1, TypeUsage A_2, o& A_3)
at Devart.Common.Entity.f.a(DbProjectExpression A_0)
at System.Data.Common.CommandTrees.DbProjectExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
at Devart.Common.Entity.f.a(DbExpression A_0, Boolean A_1, o& A_2)
at Devart.Common.Entity.f.f(DbExpression A_0)
at Devart.Common.Entity.f.a(DbQueryCommandTree A_0, List`1& A_1)
at Devart.Data.Oracle.Entity.k.a(DbCommandTree A_0, DbConnection A_1, DbProviderManifest A_2)
at Devart.Data.Oracle.Entity.OracleEntityProviderServices.a(DbProviderManifest A_0, DbCommandTree A_1)
at Devart.Data.Oracle.Entity.OracleEntityProviderServices.CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree)
at System.Data.Common.DbProviderServices.CreateCommandDefinition(DbCommandTree commandTree)
at System.Data.EntityClient.EntityCommandDefinition..ctor(DbProviderFactory storeProviderFactory, DbCommandTree commandTree)

Posted: Fri 01 Oct 2010 10:41
by AndreyR
This problem relating to dotConnect for PosgtreSQL was discussed here.
Unfortunately, nothing can be done at the moment.
However, usually there is a possibility to modify the query in order to make it usable, like in this thread.