C# LINQ-按日期分组会导致NotSupportedException
我试图在MVC视图中显示到服务的分组连接数 我遇到的问题是,当我试图检查为分页目的返回了多少项时,我得到一个System.NotSupportedException LINQ to实体中不支持指定的类型成员“日期”。仅支持初始值设定项、实体成员和实体导航属性 这是我的易读方法C# LINQ-按日期分组会导致NotSupportedException,c#,entity-framework,linq,C#,Entity Framework,Linq,我试图在MVC视图中显示到服务的分组连接数 我遇到的问题是,当我试图检查为分页目的返回了多少项时,我得到一个System.NotSupportedException LINQ to实体中不支持指定的类型成员“日期”。仅支持初始值设定项、实体成员和实体导航属性 这是我的易读方法 private IQueryable<ConnectionItem> ListItems(DataContext dataContext) { return from conn in d
private IQueryable<ConnectionItem> ListItems(DataContext dataContext)
{
return
from conn in dataContext.Connections
join cfg in dataContext.Configurations on conn.ConfigID equals cfg.ConfigID
join u in dataContext.Users on cfg.UserID equals u.UserID
where conn.Successful && u.AccountEventID == 123
group 1 by conn.CreatedDate.Date into g
select new ConnectionItem
{
CreatedDate = g.Key,
NumberOfConnections = g.Count(),
};
}
我这样称呼它:
var items = ListItems(dataContext);
var total = items.Count() // this causes the exception
我的最终结果应该是日期的集合,例如2017-01-10和当天的连接数。如果您想要的是截断时间,请使用以下方法: Date是DateTime对象的属性,它是在运行时计算的,不能直接转换为SQL以供LINQ提供程序实现在服务器上进行计算。SqlFunctions中可能有一个方法可用于编写查询,例如允许服务器对此进行评估:或
var items = ListItems(dataContext);
var total = items.Count() // this causes the exception
//...
group 1 by DbFunctions.TruncacteTime(conn.CreatedDate) into g
//...