Skip to content

IncludeOptimizedByPathIssue throw error #771

Open
@v-karnaukhov

Description

@v-karnaukhov

Description

IncludeOptimizedByPathIssue throw error

"Method Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor+ShaperProcessingExpressionVisitor.PopulateCollection: type argument 'System.Collections.Generic.List1[System.Collections.Generic.List1[IssueWithAnyAll.Entities.File]]' violates the constraint of type parameter 'TRelatedEntity'."

Exact that code perfectly worked for EF 6, but now after upgrading to EF Core 7 it produce error.

In reproducing repo you can see this :

 var temp = context.Requests
        .Where(x => x.Id == 1)
        .IncludeOptimizedMultiple(votesIncludes)
        .FirstOrDefault();

where IncludeOptimizedMultiple is extension :

public static IQueryable<TEntity> IncludeOptimizedMultiple<TEntity>(
        this IQueryable<TEntity> query,
        IEnumerable<string> includes) where TEntity : class
    {
        if (includes != null)
        {
            query = includes.Aggregate(query, (current, include) => current.IncludeOptimizedByPath(include));
        }

        return query;
    }

Exception

Exception message:
Method Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor+ShaperProcessingExpressionVisitor.PopulateCollection: type argument 'System.Collections.Generic.List`1[System.Collections.Generic.List`1[IssueWithAnyAll.Entities.File]]' violates the constraint of type parameter 'TRelatedEntity'.

Stack trace:
GenericArguments[2], 'System.Collections.Generic.List`1[System.Collections.Generic.List`1[IssueWithAnyAll.Entities.File]]', on 'Void PopulateCollection[TCollection,TElement,TRelatedEntity](Int32, Microsoft.EntityFrameworkCore.Query.QueryContext, System.Data.Common.DbDataReader, Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryResultCoordinator, System.Func`3[Microsoft.EntityFrameworkCore.Query.QueryContext,System.Data.Common.DbDataReader,System.Object[]], System.Func`3[Microsoft.EntityFrameworkCore.Query.QueryContext,System.Data.Common.DbDataReader,System.Object[]], System.Func`3[Microsoft.EntityFrameworkCore.Query.QueryContext,System.Data.Common.DbDataReader,System.Object[]], System.Collections.Generic.IReadOnlyList`1[Microsoft.EntityFrameworkCore.ChangeTracking.ValueComparer], System.Collections.Generic.IReadOnlyList`1[Microsoft.EntityFrameworkCore.ChangeTracking.ValueComparer], System.Collections.Generic.IReadOnlyList`1[Microsoft.EntityFrameworkCore.ChangeTracking.ValueComparer], System.Func`5[Microsoft.EntityFrameworkCore.Query.QueryContext,System.Data.Common.DbDataReader,Microsoft.EntityFrameworkCore.Query.Internal.ResultContext,Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryResultCoordinator,TRelatedEntity])' violates the constraint of type 'TRelatedEntity'.

Project

Reproducing repo is here : https://github.com/v-karnaukhov/z.entityframework.plus.issue. In repo you can find script for creating db structure (DB Scripts folder).

Further technical details

  • EF version: Microsoft.EntityFrameworkCore 7.0.5
  • EF Extensions version: 7.22.3
  • Database Provider: Microsoft.EntityFrameworkCore.SqlServer 7.0.5

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions