我有这行代码(使用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>>
((十进制,整数...)作为参数的平均值存在重载。
double avg = db.MyTable.Where(x => x.RecordDate < today).Average(z => z.value);
并且它们有很多方法可以查看生成的sql,例如,您可以在google上搜索sql generated linq
或在此处查看,
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句