我基本上是在尝试一个" Archives"按月和年分组的日期。但是我的问题是数据库中的日期是字符串......不是我的选择。
以下是我获取日期组列表的代码
var dates = dbBlog.Data
.GroupBy(o => new
{
Month = Convert.ToDateTime(o.date).Month,
Year = Convert.ToDateTime(o.date).Year
})
.Select(g => new BlogArchiveClass
{
Month = g.Key.Month,
Year = g.Key.Year,
Total = g.Count()
})
.OrderByDescending(a => a.Year)
.ThenByDescending(a => a.Month)
.ToList();
但是当我使用它时,我收到了这个错误:
LINQ to Entities does not recognize the method 'System.DateTime ToDateTime(System.String)
我怎么能用数据库中的字符串日期来完成我正在做的事情?
答案 0 :(得分:2)
如果您知道字符串的格式,那么您可以执行以下操作:
var dates = dbBlog.Data
Select(d => new
{
Month = d.Month.Substring(....),
Year = d.Year.Substring(....)
})
.GroupBy(o => new { o.Month,o.Year})
.Select(g => new BlogArchiveClass
{
Month = g.Key.Month,
Year = g.Key.Year,
Total = g.Count()
})
.OrderByDescending(a => a.Year)
.ThenByDescending(a => a.Month)
.ToList();