asp.net-mvc - 在 LINQ 查询和 ASP.NET MVC 方面需要帮助?

标签 asp.net-mvc linq linq-to-sql viewmodel

我的存储库返回一个帐户列表。

每个帐户都有一个日期和一个 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/

相关文章:

c# - ASP.NET MVC 3/Razor - 奇怪的缓存问题

c# - C# 报告 "Object reference not set to an instance of an object."中的 LINQ DataContext.SubmitChanges()

c# - 文本框更改时传递隐藏 ID

asp.net - 更改 Razor View 似乎会重新启动我的应用程序

c# - 将 LINQ 语句转换为通常的数据服务 URL

c# - 使用 LINQ 解析 XDocument

c# - 如何使用 Linq to SQL 根据另一个表的前 1 个 ID 进行连接?

c# - 当 FindFiles 进程完成时发出通知

javascript - 为什么我的 jQuery.post() ajax 在我返回一个 View 时失败,但在我返回另一个 View 时却没有失败?

c# - DataTable 列值分组和排序