【问题标题】:Using entity framework and MSSQL AVG() function使用实体框架和 MSSQL AVG() 函数
【发布时间】:2013-10-07 09:26:11
【问题描述】:

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

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

我想知道这是翻译成SQLAVG()函数还是Average()在客户端运行?

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

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

【问题讨论】:

    标签: sql c sql-server-2008 entity-framework average


    【解决方案1】:

    如果你不枚举你的queryable,是的,average 将在 db 端完成。

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

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

    查看生成的sql的方法有很多,可以googlesql generated linq,或者看看here,例如

    【讨论】:

      猜你喜欢
      • 2020-09-06
      • 2015-03-23
      • 1970-01-01
      • 2013-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多