LINQ to Entities无法识别方法'System.String GetMonthName(Int32)'方法

Bea*_*ore 1 c# linq

我究竟做错了什么?FYI存储库方法GetResearchArticles()返回IQueryable.

var grouped = (from p in _researchArticleRepository.GetResearchArticles()
               group p by new { month = p.DatePublished.Month, year = p.DatePublished.Year } into d
               select new
               {
                   dt = d.Key.month + "-" + d.Key.year,
                   dtByMonthName = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(d.Key.month) + " " + d.Key.year
               }//count = d.Count() }
               )
               .OrderByDescending(g => g.dt);
return grouped.ToDictionary(item => item.dt, item => item.dtByMonthName);
Run Code Online (Sandbox Code Playgroud)

kmc*_*000 6

它可能试图将该语句转换为SQL表达式,但它无法做到.您应该对已经从数据库中检索的数据进行调用,而不是尝试在数据库上执行此操作.

基本上,您需要运行.ToList()或强制获取数据,然后拨打电话GetMonthName()