Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ-按日期分组会导致NotSupportedException_C#_Entity Framework_Linq - Fatal编程技术网

C# LINQ-按日期分组会导致NotSupportedException

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

我试图在MVC视图中显示到服务的分组连接数

我遇到的问题是,当我试图检查为分页目的返回了多少项时,我得到一个System.NotSupportedException

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

这是我的易读方法

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
//...