Closed
Description
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)