Sql server 如何在linq中编写此SQL平均查询

Sql server 如何在linq中编写此SQL平均查询,sql-server,linq,Sql Server,Linq,下面是我希望运行的SQL: DECLARE @StartDt DATETIME, @EndDt DATETIME SET @StartDt='2009-01-01' SET @EndDt='2010-06-01' SELECT AVG(DATEDIFF(day, CreatedDt, CompletedDt)) AVG(DATEDIFF(day, CreatedDt, ComplianceDt)) FROM MyTable WHERE RequestDt BETWEEN @StartD

下面是我希望运行的SQL:

DECLARE @StartDt DATETIME, @EndDt DATETIME
SET @StartDt='2009-01-01'
SET @EndDt='2010-06-01'

SELECT  
AVG(DATEDIFF(day, CreatedDt, CompletedDt)) 
AVG(DATEDIFF(day, CreatedDt, ComplianceDt)) 
FROM MyTable
WHERE RequestDt BETWEEN @StartDt AND @EndDt
这可以用Linq(C#)表示并在数据库上运行吗?

DateTime startDt=new DateTime(2009,1,1);
DateTime startDt = new DateTime(2009, 1, 1);
DateTime endDt = new DateTme(2010, 6, 1);

var query = dc.MyTables
  .Where(x => startDt <= x.RequestDate && x.RequestDt <= endDt)
  .GroupBy(x => 1)  //unsure about this group by
  .Select(g => new
  {
    FirstAvg = g.Average(x =>
      SqlMethods.DateDiffDay(x.CreatedDt, x.CompletedDt)),
    SecondAvg = g.Average(x =>
      SqlMethods.DateDiffDay(x.CreatedDt, x.ComplianceDt))
  });

var row = query.Single();
DateTime endDt=新的dateme(2010,6,1); var query=dc.MyTables .其中(x=>startDt new { FirstAvg=g.平均值(x=> SqlMethods.DateDiffDay(x.CreatedDt,x.CompletedDt)), SecondAvg=g.平均值(x=> SqlMethods.DateDiffDay(x.CreatedDt,x.ComplianceDt)) }); var row=query.Single();
Easy并不是我唯一看重的质量。