【发布时间】:2021-04-28 13:10:32
【问题描述】:
Message 表中的每一行都包含一个 DateTime。如何获取具有最高 DateTime(最新日期)的消息行?
我现在有了这个:
public async Task<IEnumerable<Message>> getLastMessageByUnit(int unitId)
{
IQueryable<Message> tempQuery = context.Message;
tempQuery = tempQuery.Where((x) => x.Unit == unitId);
return await tempQuery.ToListAsync();
}
但是当我这样做时:
public async Task<IEnumerable<Message>> getLastMessageByUnit(int unitId)
{
IQueryable<Message> tempQuery = context.Message;
tempQuery = tempQuery.Where((x) => x.Unit == unitId).Max(x => x.DateTime);
return await tempQuery.ToListAsync();
}
我收到以下错误:
严重性代码描述项目文件行抑制状态 错误 CS0029 无法将类型“System.DateTime”隐式转换为“System.Linq.IQueryable
”
【问题讨论】:
-
OderByDescending+First
-
你将如何在 SQL 中做到这一点?同样的方式适用于 LINQ
-
你应该返回
Task<Message>而不是Task<IEnumerable<Message>>,因为只有一个项目。