使用实体框架和MSSQL AVG()函数
我有这行代码(使用使用实体框架和MSSQL AVG()函数,sql,c,sql-server-2008,entity-framework,average,Sql,C,Sql Server 2008,Entity Framework,Average,我有这行代码(使用MSSQL): double avg=db.MyTable.Where(x=>x.RecordDatez.value.Average(); 我想知道这是转换为SQLAVG()函数还是在客户端运行Average() 这个表每天包含50000条记录,我更喜欢让数据库计算平均值并只传回一个值 还有,如何查看发送到数据库的SQL查询?如果不枚举queryable,是的,average将在数据库端执行 您还可以简化代码。不需要选择,将表达式(或十进制,int…)作为参数会导致平均值过载
MSSQL
):
double avg=db.MyTable.Where(x=>x.RecordDatez.value.Average();
我想知道这是转换为SQL
AVG()
函数还是在客户端运行Average()
这个表每天包含50000条记录,我更喜欢让数据库计算平均值并只传回一个值
还有,如何查看发送到数据库的
SQL
查询?如果不枚举queryable
,是的,average
将在数据库端执行
您还可以简化代码。不需要选择,将表达式
(或十进制,int…)作为参数会导致平均值过载
double avg = db.MyTable.Where(x => x.RecordDate < today).Average(z => z.value);
double avg=db.MyTable.Where(x=>x.RecordDatez.value);
它们有很多方法可以查看生成的sql,例如,您可以在google上搜索sql生成的linq
,或者查看一下
double avg = db.MyTable.Where(x => x.RecordDate < today).Average(z => z.value);