【发布时间】:2011-11-29 03:38:13
【问题描述】:
我有一个 linq 查询,需要对 id 进行分组以计算 2 个状态值的行,然后我想调用一个对结果计数执行计算的方法。也许有人可以帮助我理解一种更好的方法来做到这一点。当我运行它时,我看到一个异常,即 linq 无法识别“calcRate”,但我之前做过类似的事情,它工作正常。我也可能不正确地处理这个问题:
var query = from c in (context.table
.Where(s => s.date >= startDate && s.date <= endDate)
.GroupBy(s => new { s.id })
.Select(s => new
{
id = h.Key.id,
rate = calcRate(h.Count(s=>s.status == 1), h.Count(s=>s.status != 3))
}).ToList())
select new { id = c.id, rate = c.rate };
【问题讨论】:
-
除非您进行聚合(求和、分组...),否则请使用 linq-to-sql 查询数据库,并且当您手头有数据时,请使用 linq-to-objects您的业务层来处理您的对象。