我有这行代码(使用MSSQL
):
double avg = db.MyTable.Where(x => x.RecordDate < today).Select(z => z.value).Average();
我想知道这是翻译成功SQL
AVG()
能还是Average()
在客户端运行?
该表每天包含 50,000 条记录,我更喜欢让数据库计算平均值并只传回一个值。
而且,我怎样才能看到SQL
发送到数据库的查询?
我有这行代码(使用MSSQL
):
double avg = db.MyTable.Where(x => x.RecordDate < today).Select(z => z.value).Average();
我想知道这是翻译成功SQL
AVG()
能还是Average()
在客户端运行?
该表每天包含 50,000 条记录,我更喜欢让数据库计算平均值并只传回一个值。
而且,我怎样才能看到SQL
发送到数据库的查询?
如果你不列举你的queryable
,是的,average
将在数据库端完成。
您还可以简化代码。不需要选择,以Expression<Func<T, double>>
(或小数,int ...)作为参数的平均值存在过载。
double avg = db.MyTable.Where(x => x.RecordDate < today).Average(z => z.value);
而且查看生成的sql的方法有很多,你可以googlesql generated linq
一下,或者看看这里,例如