在我的ASP.NET MVC4 Web应用程序中,我尝试使用Entity Framework显示包含SQL数据库中某些信息的表。从SQL表生成一个视图(使用EF的数据库冷杉)对我来说很容易,但现在我仍然坚持一个更概念化的问题。现在我的控制器将实体对象列表传递给我的视图。
public ActionResult Index()
{
return View(db.APU_daily_summary_test.ToList());
}
但是现在我需要计算SQL中某些列的最小值和最大值。我知道我应该计算模型中的最小值和最大值,但之后我不知道如何通过控制器将这些信息传递给视图。我需要一个视图模型吗?一个API?一个额外的控制器?
答案 0 :(得分:0)
您刚刚为View Model描述了一个完美的用例。
这是我建议的结构:
public class MyViewModel
{
public int MaxOfColumn { get; set; }
public List<InnerViewModel> Items { get; set; }
}
public class InnerViewModel
{
// Create properties here which represent the Model's columns you need to display
}
视图模型不仅有助于将其分解,因此您无需在视图中执行许多数据操作。对于EF对象具有circular reference的更复杂模型,这也打破了一个非常常见的错误。
答案 1 :(得分:0)
您可以使用视图模型..
public class MyViewModel
{
public List<MyType> MyList { get; set; }
public int MaxVal { get; set; }
public int MinVal { get; set; }
}
...并将您的观点与模型相关联......
或者只是从视图中调用聚合的LINQ函数Max和Min:
{@ int max = Model.Max(x => x.MyColumn); }