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);
我有这个型号
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);