Entity Framework 选择数据时出现 IGrouping 错误

Entity Framework IGrouping error when selecting data

我有这个型号

public class Project
{
    [Required]
    public Guid Id { get; set; }
    [MaxLength(512)]
    [Required]
    public string ProjectName { get; set; }        
    public Category Category { get; set; }
    [ForeignKey("Category")]
    public Guid? CategoryId { get; set; }
}

public class Category
{
    [Required]
    public Guid Id { get; set; }
    public string CategoryName { get; set; }
    public ICollection<Project> Projects { get; set; }
}

这是视图模型:

public class TipoProyectoViewModel
{      
    public string CategoryName { get; set; }
    public IEnumerable<Project> MProject { get; set; }
}

当我编写代码以获取按类别分组的项目列表时

Category = House
{
   { Id = 1, ProjectName = "my project" }
   { Id = 2, ProjectName = "my project2" }
}

Category = Cars
{
    { Id = 3, ProjectName = "my project3" }
    { Id = 5, ProjectName = "my project5" }
}

这是我控制器中的内容:

  var categories = _dbContext.Category
                             .Include(c => c.Projects)
                             .GroupBy(e => e.CategoryName)
                             .Select(e => new TipoProyectoViewModel()
                                              { 
                                                  CategoryName = e.Key, 
                                                  MProject = e.Key.Projects 
                                              });

我的问题是当我写

时我的 select 出现错误
MProject = e.Key.Projects

String does not contain a definition for Projects and no extension method "projects"accepting a first argument of type string could be found. Are you missing a reference?

我做错了什么?

您正在访问 e.Key,这是分组的 string 键。显然,它没有 属性 或方法 .Projects.

您可以像这样从分组的项目中收集 Projects

MProject = e.SelectMany(cat => cat.Projects);