这个问题是我的另一个问题的 B 部分:
我知道多次调用数据库是个坏主意。但是,我想我真正的问题是如果我使用我的最后一段代码或 speti43 的示例让我们在我的模型构造函数中这样说来消除多个数据库调用:
Public Class OrdersSummary{
...
Public ???? GetOrders(){
var ordersInMemory = orders.ToList();
decimal? GrossProfitTotal = ordersInMemory.Sum(s => s.Profit);
decimal? CommissionTotal = ordersInMemory.Sum(s => s.Commission);
decimal? NetProfitTotal = GrossProfitTotal + CommissionTotal;
return ?????
}
}
如何将这些单独但相似的数据传递给控制器?我试图根据其他一些 SO 文章推荐使用这样的元组:
public Tuple<IEnumerable<dynamic>, decimal?, decimal?, decimal?> GetOrders(string sortOrder, string searchString)
{
...
return new Tuple<IEnumerable<dynamic>,decimal?,decimal?,decimal?> (ordersInMemory, GrossProfitTotal, CommissionTotal, NetProfitTotal);
}
这听起来合理吗?然后我不知道如何在我的控制器中引用元组:
var ordersummary = new OrdersSummary();
var viewModel = new OrderSummary
{
???? cause I have no idea how to reference the tuple
};
return View(viewModel);
另一个问题是我不完全确定我在我的视图模型中构建了正确的属性。目前,对于四条数据,然后是 Orders 列表的各个属性,我有这样的情况:
public class OrderSummary
{
public IEnumerable<dynamic> Orders { get; set; }
public decimal GrossProfitTotal { get; set; }
public decimal CommissionTotal { get; set; }
public decimal NetProfitTotal { get; set; }
//Orders Table Properties
public int OrderNumber { get; set; }
public DateTime OpenTime { get; set; }
//more properties here that correspond to the Orders table.
}
似乎我可能需要在视图模型中构建不同的元组属性?如果是这样,什么语法?
如果我知道控制器中发生了什么,我想我可能知道视图中发生了什么。这甚至是正确的方法吗?我从 MVCMUsicStore 教程的第 8 步得到了整个视图模型结构的想法:
http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-8