C# ASP.NET实体框架LINQ to实体无法识别方法';System.DateTime ToDateTime(System.String)
我基本上是在试图建立一个按月份和年份分组的日期“档案”。然而,我的问题是数据库中的日期是字符串…不是我的选择 这是我获取日期组列表的代码C# ASP.NET实体框架LINQ to实体无法识别方法';System.DateTime ToDateTime(System.String),c#,asp.net,entity-framework,linq,C#,Asp.net,Entity Framework,Linq,我基本上是在试图建立一个按月份和年份分组的日期“档案”。然而,我的问题是数据库中的日期是字符串…不是我的选择 这是我获取日期组列表的代码 var dates = dbBlog.Data .GroupBy(o => new { Month = Convert.ToDateTime(o.date).Month, Year = Convert.ToDat
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)
如何从数据库中完成字符串日期的操作?如果您知道字符串的格式,则可能可以执行如下操作:
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();
如果您知道字符串的格式,那么您可能可以执行如下操作:
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();
我不明白…什么代替了
…
也不包含月份或年份(我的类不包含它们)@user979331我想他在想o.Date
。…
是字符串中相应日期部分的开始,长度
(当格式固定时,您可以计算它们)。如果格式不固定,你就倒霉了。这正是我的意思。谢谢。事实上,如果您的日期格式是固定的,您可以选择使用子字符串提取月份和年份的值,或者如果目标数据库仅限于SqlServer,您可以尝试。我唯一不明白的部分是我将o.date放在何处。我不明白…什么替代了…
也不包含月份或年份(我的类不包含它们)@用户979331我想他心里想的是o.Date
。…
是字符串中相应日期部分的开始,长度
(当格式固定时,您可以计算它们)。如果格式不固定,你就倒霉了。这正是我的意思。谢谢。事实上,如果您的日期格式是固定的,您可以选择使用子字符串提取月份和年份的值,或者如果目标数据库仅限于SqlServer,您可以尝试。我唯一不了解的部分是我将o.date放在何处?请尽您所能使数据库设计正确。不要满足于“不可能”。日期作为字符串将是一个持续的难题。尽你所能使数据库设计正确。不要满足于“不可能”。作为字符串的日期将是一个持续的痛苦的脖子。