在LINQ查询中无时间返回日期

我正在编写一个查询,我想计算我们的呼叫中心按日期联系的次数。 看起来很简单,但由于联系日期字段是日期时间字段,我得到时间,所以当我按联系日期(时间)分组时,每个联系日期实例的计数都为’1’。 所以,我想在没有时间的情况下按日期分组。 下面是我用来查询数据库的表达式:

MyDataContext db = new MyDataContext(); var items = (from h in db.ContactHistories group h by h.contact_dt into g orderby g.Key select new { contact_dt = g.Key, item_count = g.Count() }).Take(50); 

我试过用

  h.contact_dt.ToShortDateString() 

但这不起作用,因为SQL确实知道ToShortDateString()。 任何想法都非常感谢。

谢谢!

编辑:

.Take(50)用于限制我获得的记录数量,直到我添加日期选择器和where子句,因此我没有获得所有400K记录。 ;)

使用Date属性:

 group h by h.contact_dt.Date into g 

LINQ to SQL了解这一点 – 请参阅这个 “理解”方法和属性的方便页面 。

编辑:好的,所以直接分组不起作用…我们试着给它一点帮助怎么样:

 var items = (from h in db.ContactHistories select h.Date into date group date by date into g orderby g.Key select new { contact_dt = g.Key, item_count = g.Count() }).Take(50); 

我不知道它是否会起作用,但值得一试……

使用DateTime对象的.Date属性。