Asp.net mvc 将带有日期的SQL语句转换为Linq到SQL以便与EF4一起使用

Asp.net mvc 将带有日期的SQL语句转换为Linq到SQL以便与EF4一起使用,asp.net-mvc,linq-to-sql,entity-framework-4,Asp.net Mvc,Linq To Sql,Entity Framework 4,我有以下SQL命令: SELECT CONVERT(varchar, Logged, 103) AS Visited, COUNT(ID) AS Totals FROM tblStats GROUP BY CONVERT(varchar, Logged, 103) ORDER BY Visited DESC 我想将其转换为可以与实体框架一起使用的L2S语句,但是在使用datetime类型时,我会根据我如何尝试解决问题而得到各种错误 方法: var resul

我有以下SQL命令:

SELECT        CONVERT(varchar, Logged, 103) AS Visited, COUNT(ID) AS Totals
FROM            tblStats
GROUP BY CONVERT(varchar, Logged, 103)
ORDER BY Visited DESC
我想将其转换为可以与实体框架一起使用的L2S语句,但是在使用datetime类型时,我会根据我如何尝试解决问题而得到各种错误

方法:

var results = from s in db.Stats
      group s by (s.Logged.Date.ToString()) into Grp
      select new { Day = Grp.Key, Total = Grp.Count() };
var results = from s in db.Stats
              group s by (s.Logged.Date) into Grp
              select new { Day = Grp.Key, Total = Grp.Count() };
错误:

LINQ to实体无法识别 “System.String ToString()方法” 方法,并且此方法不能为空 翻译成商店表达式

方法:

var results = from s in db.Stats
      group s by (s.Logged.Date.ToString()) into Grp
      select new { Day = Grp.Key, Total = Grp.Count() };
var results = from s in db.Stats
              group s by (s.Logged.Date) into Grp
              select new { Day = Grp.Key, Total = Grp.Count() };
错误:

指定的类型成员“日期”为 LINQ to实体中不支持。 仅初始值设定项、实体成员和 实体导航属性为 支持

我需要什么语法才能使查询正常工作?

尝试使用以下方法:

尝试使用以下方法:


您是否需要
s.Logged.Date
中的
Date
部分

你试过这个吗:

var results = from s in db.Stats
              group s by (s.Logged) into Grp
              select new { Day = Grp.Key, Total = Grp.Count() };
我假设
Logged
是属性(表中的列)


编辑:你们真快。

你们需要
s.Logged.Date
中的
Date
部分吗

你试过这个吗:

var results = from s in db.Stats
              group s by (s.Logged) into Grp
              select new { Day = Grp.Key, Total = Grp.Count() };
我假设
Logged
是属性(表中的列)


编辑:你们太快了。

这就是问题所在!谢谢现在我有一个不同的问题,但我将为此设置一个新问题。这就是问题所在!谢谢现在我有一个不同的问题,但我将为此设置一个新问题。如果您不使用
日期
部分,则您将按完整日期时间(包括时间部分)分组。如果您不使用
日期
部分,则您将按完整日期时间(包括时间部分)分组。