我有一个EF查询,其中还会根据其他表上的某些条件获取3列。输出列是ID,月和收入。我想在View上显示这些信息,但是如何?
我不知道在这里使用ViewModel。 查询是:
var serviceList1 = (from p in dbObj.ServiceWiseRevenues
group p by new { p.service_id, p.pdate.Month } into g
select new
{
ID = g.Key.service_id,
Month = g.Key.Month,
Revenue = g.Sum(c => c.total_revenue / c.tbService.tbCountry.CountryCurrencyConversionRate)
}).OrderByDescending(x => x.Month).ToList();
return View(serviceList1);
答案 0 :(得分:0)
serviceList1
是匿名对象的列表。在View中使用它们是非常重要的,因为它们的类型是由.NET Runtime生成的。
最好定义一个像这样的ViewModel类(可能在文件夹/Models
中):
public class RevByMonth
{
int ID { get; set; },
int Month { get; set; },
double Revenue { get; set; },
}
然后将select new { ... }
部分替换为:
select new RevByMonth
{
ID = g.Key.service_id,
Month = g.Key.Month,
Revenue = g.Sum(...)
}
最后在视图模型中指定类型RevByMonth
:
@model List<RevByMonth>
// rest of View code, e.g. foreach (var revenue in Model) ...