【发布时间】:2018-03-29 20:11:45
【问题描述】:
我有这个模型
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
});
我的问题是我在写的时候选择错误
MProject = e.Key.Projects
字符串不包含项目的定义,并且找不到接受字符串类型的第一个参数的扩展方法“项目”。您是否缺少参考资料?
我做错了什么?
【问题讨论】:
-
你应该用
_dbContext.Projects.GroupBy(x => x.Category.CategoryName ).Select(x => new TipoProyectoViewModel { CategoryName = x.Key, MProject = x });来做这个
标签: c# asp.net-mvc entity-framework-6 extension-methods