我有一个EF数据库,我有一个名为 Foo 的模型,它有几个属性,其中一个是 Title 。在我的主页视图中,我想显示按标题分组的嵌套Foo列表。因此显示可能看起来像
Title 1
ID 1
ID 2
ID 3
Title 2
ID 4
ID 5
ID 6
使用Linq,获取数据非常简单。
var foos = myDbContext.Foos.GroupBy(x => x.Title)().ToList();
如果我检查foos.First()。将返回“按分组”标题的键,以及foos.First()。ToList()将返回第一个“分组”标题的Foos列表。我应该创建一个如下所示的模型,然后在我的Razor delcare模型中创建@model List<Models.HomeViewModel>
public class HomeViewModel
{
public String Title { get; set; }
public List<Foo> Foos{ get; set; }
}
然后在我的控制器中使用linq将 foos 转换为模型?
var model = rc.Select(x=> new HomeViewModel(){Title=x.Key, Foos = x.ToList()}).ToList();
return View(model);