【发布时间】:2020-06-03 20:46:46
【问题描述】:
我正在使用实体框架核心,并且具有简单的表结构,其中系统有很多日志,但是对于我的某些功能,我希望拥有该集合的最后一个孩子,所以我尝试了:
Models.Entities.System system = await Context.Systems
.Include(log => log.MaintenanceLogs)
.FirstOrDefaultAsync(system=> system.Id == system);
但据我所知,我不能添加
.Include(log => log.MaintenanceLogs).Last()
这行不通,我可以创建手动查询并得到我想要的,但这不是重点。 此外,我可以在查询具体化后获取所有日志并获得最后一个,但仍然可以有大量的日志数据库记录,我只需要最后一个,所以为什么要浪费资源。
原因是我需要从最后一个日志中获取一个值,并基于该值更新系统(当然都是在事务中)。
可以吗?
【问题讨论】:
-
按日志日期降序排序,然后 Take(1),然后调用 FirstOrDefault()
-
虽然可能没有必要先调用 Take(1)。
标签: c# .net-core entity-framework-core