将groupby查询的结果传递给强类型视图并显示

时间:2014-06-29 09:11:21

标签: c# asp.net-mvc entity-framework

如何将此查询的IEnumerable结果传递给强类型视图以进行显示?

var a = _db.Test
           .GroupBy(g => g.userId)
           .Select(s => new { userid = s.Key,  total = s.Count()});

典型的结果是:

userid = John
total = 2

userid = Joe
total = 5

任何建议表示赞赏。

2 个答案:

答案 0 :(得分:2)

您可以创建一个自定义类,它将是一个视图模型并返回该视图模型的类型列表,而不是返回匿名类型:

public class MyVM
{
  public string UserID {get;set;}
  public int Total {get;set;}
}

然后:

var a = _db.Test
           .GroupBy(g => g.userId)
           .Select(s => new MyVM{ UserID = s.Key,  Total = s.Count()}).ToList();

并在视野中:

@model List<MyVM>

答案 1 :(得分:1)

您只需要声明一个与查询结果兼容的具体类型,然后传递具体化的IEnumerable<T>(即T[]List<T>,{{1} })其中ReadOnlyCollection<T>是新声明的类型。

T