Sql server 与实体框架中的数字表联接

Sql server 与实体框架中的数字表联接,sql-server,linq,entity-framework,Sql Server,Linq,Entity Framework,我正在尝试使用Entity Framework和Linq to Entities编写一个查询,以获取表中事件的每日计数,用于绘制图表。问题是,我想返回一个完整的天数列表,即使没有可用的数据 我找到了一个建议使用a的答案,这基本上是有效的,但是我在左外连接方面遇到了问题(我认为我需要这样做) 此简单查询返回过去7天,包括今天: var foo = from n in Numbers where n.NumberId > 0 && n.NumberId <=

我正在尝试使用Entity Framework和Linq to Entities编写一个查询,以获取表中事件的每日计数,用于绘制图表。问题是,我想返回一个完整的天数列表,即使没有可用的数据

我找到了一个建议使用a的答案,这基本上是有效的,但是我在左外连接方面遇到了问题(我认为我需要这样做)

此简单查询返回过去7天,包括今天:

var foo = from n in Numbers
      where n.NumberId > 0 && n.NumberId <= 7   
      let date = DbFunctions.AddDays(start, n.NumberId)
      select date;

发布后不久,我就解决了这个问题。解决办法是:

var bar = from n in Numbers
          where n.NumberId > 0 && n.NumberId <= 7
          let date = DbFunctions.AddDays(start, n.NumberId)
          join i in Incidents on EntityFunctions.TruncateTime(date) equals EntityFunctions.TruncateTime(i.IncidentDate) into days
          select new {
              date,
              Count = days.Count()
           }; 
var bar=从n开始,以数字表示
其中n.NumberId>0&&n.NumberId
Date      | Count
-------------
3/26/2014 | 0
3/25/2014 | 10
3/24/2014 | 9
var bar = from n in Numbers
          where n.NumberId > 0 && n.NumberId <= 7
          let date = DbFunctions.AddDays(start, n.NumberId)
          join i in Incidents on EntityFunctions.TruncateTime(date) equals EntityFunctions.TruncateTime(i.IncidentDate) into days
          select new {
              date,
              Count = days.Count()
           };