dotnet / dotnet/efcore

ArgumentOutOfRangeException thrown on query with projection for entity containing owned types

Open
#28,137 0 comments 2 reactions 0 assignees View on GitHub
area-query customer-reported
Dominant language
C#
Stars
14.8k
Forks
3.4k
PR merge metrics
PR metrics pending

Description

### Sample code
[Here](https://github.com/tiggris/EFCoreProjection.git) you can find sample code that reproduces this issue.

### Issue description

Recently we've updated our solution from .net core 5 to 6.0.5 and some queries started to throw ArgumentOutOfRangeException. After some investigation it turned out that it occurs when entity contains some owned types.

### StackTrace:

```
List`1.get_Item(Int32 index)
SelectExpression.g__FindTableReference|84_0(SelectExpression selectExpression, TableExpressionBase tableExpression)
SelectExpression.g__GetPropertyExpressionFromSameTable|84_1(IEntityType entityType, ITableBase table, SelectExpression selectExpression, TableExpressionBase tableExpressionBase, String columnName, Boolean nullable)
SelectExpression.g__GetPropertyExpressionFromSameTable|84_1(IEntityType entityType, ITableBase table, SelectExpression selectExpression, TableExpressionBase tableExpressionBase, String columnName, Boolean nullable)
SelectExpression.GenerateWeakEntityProjectionExpression(IEntityType entityType, ITableBase table, String columnName, TableExpressionBase tableExpressionBase, Boolean nullable)
SharedTypeEntityExpandingExpressionVisitor.TryExpand(Expression source, MemberIdentity member)
SharedTypeEntityExpandingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
MethodCallExpression.Accept(ExpressionVisitor visitor)
ExpressionVisitor.Visit(Expression node)
IncludeExpression.VisitChildren(ExpressionVisitor visitor)
<16 more frames...>
Database.CompileQuery[TResult](Expression query, Boolean async)
QueryCompiler.CompileQueryCore[TResult](IDatabase database, Expression query, IModel model, Boolean async)
<>c__DisplayClass9_0`1.b__0()
CompiledQueryCache.GetOrAddQuery[TResult](Object cacheKey, Func`1 compiler)
QueryCompiler.Execute[TResult](Expression query)
EntityQueryProvider.Execute[TResult](Expression expression)
EntityQueryable`1.GetEnumerator()
List`1.ctor(IEnumerable`1 collection)
Enumerable.ToList[TSource](IEnumerable`1 source)
```

### Provider and version information
EF Core version: 6.0.5
Database provider: Microsoft.EntityFrameworkCore.SqlServer
Target framework: .NET 6.0
Operating system: Windows 10
IDE: Visual Studio 2022 17.2.1

Kind regards,
Agnieszka Stojanik

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.