gpt4 book ai didi

c# - Linq查询获取最后一条记录

转载 作者:行者123 更新时间:2023-11-30 19:01:36 25 4
gpt4 key购买 nike

我知道这个问题被问过很多次,而且我已经在线搜索了大部分解决方案,但似乎没有一个适合我。我有一个具有这种结构的表:

ID | ScheduleId | Filename | Description
1 | 10 | | ....
2 | 10 | test.txt | .....

我想通过传递 ScheduleId 获取最后一个非空 Filename(例如,在本例中获取“test.txt”)。

我已经尝试了很多东西,但似乎没有什么能让我得到文件名。这是最后一个:

var tempFileName = objContext.SchedulesAndFiles
.Where(x => x.ScheduleId == scheduleId)
.OrderByDescending(x => x.ScheduleId)
.Take(1).Select(x => x.Filename);

这也行不通,虽然我明白为什么行不通:

var tempFileName = from e in objContext.SchedulesAndFiles
where e.ScheduleId == scheduleId
orderby e.ScheduleId descending
select e.Filename;

调用 .Last().LastOrDefault() 会抛出异常(不支持查询运算符 'LastOrDefault'。)

最佳答案

如果必须包含您只需要非空文件名。您也可以使用 ToList() 来完成查询,然后 FirstOrDefault() 应该会按预期工作,试试

var tempFileName = objContext.SchedulesAndFiles
.Where(x
=> x.ScheduleId == scheduleId
&& x.Filename != null
&& x.Filename != "")
.OrderByDescending(x => x.ScheduleId)
.Take(1)
.Select(x => x.Filename)
.ToList()
.FirstOrDefault();

关于c# - Linq查询获取最后一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24506659/

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