如何使用ASP.NET MVC计算模型中的记录数?

时间:2013-10-10 14:11:54

标签: asp.net-mvc-4

我想计算Suspenses属性中包含的记录数,其中包含一年的" 2013"和#34; 1"。

运行以下代码时出现错误:" DbComparisonExpression需要具有可比类型的参数。"我还是ASP.Net MVC的新手,不知道这是否是获得我的结果的方法。希望我能从你的评论中学习。我们将非常感谢您的帮助。

 var suspenses = db.Suspenses.Include(s => s.User);
 int[] count = new int[12];

 for (var i = 1; i <= 12; i++)
 {
     // to count number of account suspenses on every months
     suspenses = suspenses.Where(s => s.SuspenseDate.Year.Equals(year));
     suspenses = suspenses.Where(s => s.SuspenseDate.Month.Equals(i));
     count[i-1] = suspenses.Count();
 }

3 个答案:

答案 0 :(得分:1)

试试这个:

int recordsInJanuary2013 = 
    db.Suspenses.Count(se => se.SuspenseDate.Month == 1 
                             && se.SuspenseDate.Year == 2013);

答案 1 :(得分:0)

您可以通过每月分组并计算总数来一行完成:

var count = db.Suspenses.GroupBy(s => s.SuspenseDate.Month).Select(g=>g.Count());

答案 2 :(得分:0)

您可以在订单中使用总和

var suspenses = db.Suspenses.sum(s => s.User).where(m => m.mounth == 12);