LINQ - 按日期分组导致NotSupportedException

时间:2017-01-18 20:16:13

标签: c# entity-framework linq

我正在尝试在MVC视图中显示与服务的分组连接数。

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

  
    

指定的类型成员'日期' LINQ to Entities不支持。仅支持初始化程序,实体成员和实体导航属性。

  

这是我的IQueryable方法

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(),
        };
}

这是ConnectionItem

public class ConnectionItem
{
    public DateTime CreatedDate { get; set; }
    public int NumberOfConnections { get; set; }
}

我称之为:

var items = ListItems(dataContext);
var total = items.Count() // this causes the exception

我的最终结果应该是日期的集合,例如2017-01-10以及当天的连接数。

1 个答案:

答案 0 :(得分:2)

如果您想要截断时间,请使用DbFunctions.TruncateTime方法:

"C:\My_Stuff\Program_Files\Anaconda3\pythonw.exe" -E -s "C:\My_Stuff\Program_Files\Anaconda3\Lib\_nsis.py" addpath
"C:\My_Stuff\Program_Files\Anaconda3\pythonw.exe" -E -s "C:\My_Stuff\Program_Files\Anaconda3\Lib\_nsis.py" mkdirs
"C:\My_Stuff\Program_Files\Anaconda3\pythonw.exe" -E -s "C:\My_Stuff\Program_Files\Anaconda3\Lib\_nsis.py" mkmenus