我的存储库返回一个帐户列表。
每个帐户都有一个日期和一个 MoneySpent 十进制数额。所以,我有我的帐户列表,在我的 Controller 中我正在尝试稍微处理这个列表。
我想要一个对象,其中包含我的帐户列表中所有月份的字符串名称以及该月花费的所有金额的总和。
这是我尝试过的:
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Detail(int id)
{
var recentAccounts = accountRepository.GetAccountsSince(DateTime.Now.AddMonths(-6));
var monthlyTotals = from a in recentAccounts
group a by a.DateAssigned.Month.ToString("MMM") into m
select new
{
Month = m.Key,
MonthSum = m.Sum(a => a.MoneySpent)
};
return View();
}
这看起来是计算 monthlyTotals 的正确方法吗?
另外,我一直在为每个 View 使用带有 ViewModel 的强类型 View ,那么我应该制作什么类型的 monthlyTotals 以便我可以将它作为一个字段添加到我的 ViewModel 上并将其传递到我的 View ?
最佳答案
我觉得不错。
当我需要将这样的数据传递到我的 View 时,我会为它创建一个类。所以你的类(class)看起来像这样:
public class MonthlyTotal
{
public string Month { get; set; }
public decimal MonthSum { get; set; }
}
您的 SELECT 子句将如下所示:
select new MonthlyTotal
{
Month = m.Key,
MonthSum= m.Sum(a => a.AmountAssigned)
}
关于asp.net-mvc - 在 LINQ 查询和 ASP.NET MVC 方面需要帮助?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1035282/