gpt4 book ai didi

c# - 如何在linq中设置日期格式 "yyyy-MM-dd hh:mm"?

转载 作者:行者123 更新时间:2023-11-30 21:53:06 30 4
gpt4 key购买 nike

这是我的代码:

var qry = (from u in _db.ApplicationUsers
select new UserBroadcastDTO()
{
UserId = u.Id,
DateCreated = u.DateCreated
}).OrderByDescending(q => q.DateCreated);

我有这个异常(exception):

LINQ to Entities does not recognize the method 'System.String ToString(System.String)' method, and this method cannot be translated into a store expression.

如何在 linq 中转换日期格式?

最佳答案

您的问题是格式化不属于 Linq 查询本身。查询关注的是数据,而不是表现。

现在,如果您尝试将查询结果转换到要显示的内容中,请确保在进行格式化之前枚举集合。您可以调用 .ToList(),但在大多数情况下,只需添加一个 .AsEnumerable() 就可以解决问题,在可以成为 SQL(或其他后端存储)查询,什么不能。然后,您添加另一个选择来进行投影。

像这样:

var qry = _db.ApplicationUsers
.OrderByDescending(q => q.DateCreated)
.AsEnumerable()
.Select new UserBroadcastDTO
{
UserId = u.Id,
DateCreated = u.DateCreated.ToString("yyyy-MM-dd hh:mm")
});

如果您愿意,.AsEnumerable 调用可以是 .ToList,但是 .AsEnumerable 可以正常工作,并且仍然会在需要时推迟执行,但重要的是您要停止它从 IQueryable 开始,因此之后的任何内容都不会尝试进入 SQL 查询,并且您不会收到错误。

关于c# - 如何在linq中设置日期格式 "yyyy-MM-dd hh:mm"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34208343/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com