将分组查询的结果传递给强类型视图并显示
本文关键字:强类型 视图 显示 查询 结果 | 更新日期: 2023-09-27 18:10:38
如何将此查询的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
欢迎指教
你可以创建一个自定义类,它将是一个视图模型,并返回该视图模型类型的List,而不是返回匿名类型:
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();
和in view:
@model List<MyVM>
您只需要声明一个与查询结果兼容的具体类型,并传递一个物化的IEnumerable<T>
(即T[]
, List<T>
, ReadOnlyCollection<T>
),其中T
是新声明的类型。
public class TestResult
{
// Can't be 100% certain about the userId type
// based on your code sample - adjust as necessary.
public int userid { get; set; }
public int total { get; set; }
}
var a = _db.Test
.GroupBy(g => g.userId)
.Select(s => new TestResult { userid = s.Key, total = s.Count()});