Skip to content

Query: compilation error (value cannot be null, parameter name: tableExpression) for query with join where keys are deeply nested navigations and inner has order by #12787

@maumar

Description

@maumar

query:

                var query = from e4 in ctx.LevelFour
                            join e1 in ctx.LevelOne.OrderBy(ee => ee.Id) on e4.Name equals e1.OneToOne_Required_FK.OneToOne_Optional_FK.OneToOne_Required_PK.Name
                            select new
                            {
                                Id4 = e4.Id,
                                Name4 = e4.Name,
                                Id1 = e1.Id,
                                Name1 = e1.Name
                            };

                var result = query.ToList();

OrderBy(ee => ee.Id) is what causes the problem

exception:

System.ArgumentNullException : Value cannot be null.
Parameter name: tableExpression
	at Microsoft.EntityFrameworkCore.Utilities.Check.NotNull[T](T value, String parameterName)
	at Microsoft.EntityFrameworkCore.Query.Expressions.ColumnExpression..ctor(String name, IProperty property, TableExpressionBase tableExpression)
	at Microsoft.EntityFrameworkCore.Query.Expressions.SelectExpression.BindProperty(IProperty property, IQuerySource querySource)
	at Microsoft.EntityFrameworkCore.Query.Expressions.SelectExpression.AddToProjection(IProperty property, IQuerySource querySource)
	at Microsoft.EntityFrameworkCore.Query.RelationalQueryModelVisitor.BindMemberOrMethod[TResult](Func`4 memberBinder, IQuerySource querySource, IProperty property, Boolean bindSubQueries)
	at Microsoft.EntityFrameworkCore.Query.RelationalQueryModelVisitor.<>c__DisplayClass107_0`1.<BindMemberExpression>b__0(IProperty property, IQuerySource qs)
	at Microsoft.EntityFrameworkCore.Query.EntityQueryModelVisitor.<>c__DisplayClass91_0`1.<BindMemberExpression>b__0(IReadOnlyList`1 ps, IQuerySource qs)
	at Microsoft.EntityFrameworkCore.Query.EntityQueryModelVisitor.BindPropertyExpressionCore[TResult](Expression propertyExpression, IQuerySource querySource, Func`3 propertyBinder)
	at Microsoft.EntityFrameworkCore.Query.EntityQueryModelVisitor.BindMemberExpression[TResult](MemberExpression memberExpression, IQuerySource querySource, Func`3 memberBinder)
	at Microsoft.EntityFrameworkCore.Query.RelationalQueryModelVisitor.BindMemberExpression[TResult](MemberExpression memberExpression, IQuerySource querySource, Func`4 memberBinder, Boolean bindSubQueries)
	at Microsoft.EntityFrameworkCore.Query.RelationalQueryModelVisitor.BindMemberExpression[TResult](MemberExpression memberExpression, Func`4 memberBinder, Boolean bindSubQueries)
	at Microsoft.EntityFrameworkCore.Query.ExpressionVisitors.RelationalEntityQueryableExpressionVisitor.VisitMember(MemberExpression node)
	at System.Linq.Expressions.MemberExpression.Accept(ExpressionVisitor visitor)
	at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
	at System.Linq.Expressions.ExpressionVisitor.VisitAndConvert[T](ReadOnlyCollection`1 nodes, String callerName)
	at Remotion.Linq.Parsing.RelinqExpressionVisitor.VisitNew(NewExpression expression)
	at System.Linq.Expressions.NewExpression.Accept(ExpressionVisitor visitor)
	at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
	at Microsoft.EntityFrameworkCore.Query.EntityQueryModelVisitor.ReplaceClauseReferences(Expression expression, IQuerySource querySource, Boolean inProjection)
	at Microsoft.EntityFrameworkCore.Query.EntityQueryModelVisitor.VisitSelectClause(SelectClause selectClause, QueryModel queryModel)
	at Microsoft.EntityFrameworkCore.Query.RelationalQueryModelVisitor.VisitSelectClause(SelectClause selectClause, QueryModel queryModel)
	at Remotion.Linq.Clauses.SelectClause.Accept(IQueryModelVisitor visitor, QueryModel queryModel)
	at Remotion.Linq.QueryModelVisitorBase.VisitQueryModel(QueryModel queryModel)
	at Microsoft.EntityFrameworkCore.Query.EntityQueryModelVisitor.VisitQueryModel(QueryModel queryModel)
	at Microsoft.EntityFrameworkCore.Query.RelationalQueryModelVisitor.VisitQueryModel(QueryModel queryModel)
	at Microsoft.EntityFrameworkCore.Query.EntityQueryModelVisitor.CreateQueryExecutor[TResult](QueryModel queryModel)
	at Microsoft.EntityFrameworkCore.Storage.Database.CompileQuery[TResult](QueryModel queryModel)
	--- End of stack trace from previous location where exception was thrown ---
	at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
	at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.CompileQueryCore[TResult](Expression query, IQueryModelGenerator queryModelGenerator, IDatabase database, IDiagnosticsLogger`1 logger, Type contextType)
	at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.<>c__DisplayClass13_0`1.<Execute>b__0()
	at Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQueryCore[TFunc](Object cacheKey, Func`1 compiler)
	at Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQuery[TResult](Object cacheKey, Func`1 compiler)
	at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.Execute[TResult](Expression query)
	at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryProvider.Execute[TResult](Expression expression)
	at Remotion.Linq.QueryableBase`1.GetEnumerator()
	at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
	at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No fields configured for Bug.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions