首页 .Net linq中不允许使用ToString()或其他扩展方法解决方案

linq中不允许使用ToString()或其他扩展方法解决方案

示例:在select中要求转换AddTime转换成year 年 ,由于数据库中存储的是时间戳,所有需要转成datetime 。linq中是没有将方法无法转换为存储表达式的。

需要必须使用AsEnumerable() 才可以。

_articleRepository.OrderByDescending(x => x.AddTime).Skip((input.Page - 1) * input.Page)
 .Take(input.Limit)
 .Select(x => new PostBriefDto
  {
     Title = x.Title,
      Id = x.Id,
      Year = x.AddTime.TryDateTime().Year,
      CreationTime = x.AddTime.ToString()
   }).GroupBy(x => x.Year)
.Select(x => new QueryPostDto
 {
   Year = x.Key,
   Posts = x.ToList()
}).ToList();

使用

_articleRepository.OrderByDescending(x => x.AddTime)
.Skip((input.Page - 1) * input.Page).Take(input.Limit)
.AsEnumerable()
.Select(x => new PostBriefDto{
Title = x.Title,
Id = x.Id,
Year = x.AddTime.TryDateTime().Year,
CreationTime = x.AddTime.ToString()
}).GroupBy(x => x.Year)
.Select(x => new QueryPostDto{
Year = x.Key,
Posts = x.ToList()
}).ToList();


特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。