1

我想计算 Suspenses 属性中包含的记录数,年份为“2013”​​,月份为“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();
 }
4

3 回答 3

1

试试这个:

int recordsInJanuary2013 = 
    db.Suspenses.Count(se => se.SuspenseDate.Month == 1 
                             && se.SuspenseDate.Year == 2013);
于 2013-10-10T16:08:09.523 回答
0

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

var count = db.Suspenses.GroupBy(s => s.SuspenseDate.Month).Select(g=>g.Count());
于 2013-10-10T14:16:17.540 回答
0

您可以在订单中使用 sum

var suspenses = db.Suspenses.sum(s => s.User).where(m => m.mounth == 12);
于 2015-12-13T10:36:00.333 回答