0

我有这行代码(使用MSSQL):

double avg = db.MyTable.Where(x => x.RecordDate < today).Select(z => z.value).Average();

我想知道这是翻译成功SQL AVG()能还是Average()在客户端运行?

该表每天包含 50,000 条记录,我更喜欢让数据库计算平均值并只传回一个值。

而且,我怎样才能看到SQL发送到数据库的查询?

4

1 回答 1

1

如果你不列举你的queryable,是的,average将在数据库端完成。

您还可以简化代码。不需要选择,以Expression<Func<T, double>>(或小数,int ...)作为参数的平均值存在过载。

double avg = db.MyTable.Where(x => x.RecordDate < today).Average(z => z.value);

而且查看生成的sql的方法有很多,你可以googlesql generated linq一下,或者看看这里,例如

于 2013-10-07T09:48:51.787 回答