Вы пытаетесь выполнить работу, которую EF должен сделать для вас.
Похоже, у вас есть отношения многие ко многим между таблицами groups
и roles
.Почему бы вам не удалить класс group_roles
и просто определить свойства навигации
public virtual IEnumerable<roles> roles { get; set; }
в groups
классе модели и
public virtual IEnumerable<groups> groups { get; set; }
в roles
классе модели
и получите список групп и ролей следующим образом:
var groupRoles = p.groups.SelectMany(g=>g.roles, (g,r)=>new {Group = g.group_name, Role = r.role_name}).ToList();
Или если вы используете EF Core, который еще не поддерживает отношения многие-ко-многим без промежуточного класса модели или просто настаивает на том, чтобыПромежуточный класс group_roles
в вашей модели, вы можете определить в нем два свойства навигации, что-то вроде этого:
public class group_roles
{
[Key]
public int group_roles_id { get; set; }
[ForeignKey("groups")]
public int group_id { get; set; }
[ForeignKey("roles")]
public int role_id { get; set; }
public virtual groups group { get; set; }
public virtual roles role { get; set; }
}
Тогда ваш запрос просто
var groupRoles = p.group_roles.Select(gr=> new {gr.group_roles_id, Group=gr.group.group_name, Role=gr.role.role_name).ToList();