Skip to content

Grouping produces wrong query when nested navigation is used #13594

Closed
@msmolka

Description

@msmolka

Grouping produces wrong query.

I have following model:

Steps to reproduce

public class Model
{
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public Guid Id { get; set; }

        public Guid? EngineerId { get; set; }

        public virtual User Engineer { get; set; }

        public Guid? TakenBy { get; set; } 
        
        [ForeignKey("TakenBy")]
        public virtual User TakenByUser { get; set; }      

        public Guid? LockedBy { get; set; } 
        
        [ForeignKey("LockedBy")]
        public virtual User LockedByUser { get; set; }

        public string Name { get; set; }
}

then I have selector

from model in db.Models
select new {
    Id = model.Id,
    EngineerName = model.Engineer.DisplayName,
    TakenByName =  model.TakenByUser.DisplayName,
    LockedByName = model.LockedByUser.DisplayName 
}

all is working properly when it comes to sorting or filtering
however when I'm trying to group .e.g. by name group by produces wrong select.
It reproduces in this case:

    ...
    [t1].[EngineerName],
    [t1].[TakenByName],
    [t1].[LockedByName],
   
    ...

    [t1].[DisplayName],
    [t1].[DisplayName],
    [t1].[DisplayName]

at the end of SQL select part of group
which is not exist in from select which is causing SQL exception:

System.Data.SqlClient.SqlException (0x80131904): 

Invalid column name 'DisplayName'.
Invalid column name 'DisplayName'.
Invalid column name 'DisplayName'.

Further technical details

EF Core version: 2.1.4
Database Provider: (Microsoft.EntityFrameworkCore.SqlServer)
Operating system: Windows 10 Pro
IDE: (Visual Studio 2017 15.8.7)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions