如何构建模型来表示从EF检索到的记录列表并关注DRY?

时间:2015-10-21 20:33:22

标签: asp.net-mvc-5

我有一个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);

0 个答案:

没有答案