仅预加载前 n 条记录的 Linq 表达式

Linq expression with eager loading only top n records

我正在使用 entity framework 内核。我渴望为实体加载导航 属性。我在这里想要实现的是仅加载按创建日期排序的前 5 条记录以及主要实体。我有以下查询。

Context.Foo.Where(f => f.Id == fid)
    .Include(f1 => f1.Bars.OrderByDescending(b => b.CreateDate).Take(LIMIT))
    .FirstOrDefault();

它抛出 属性 表达式无效的错误。我知道表达式应该只评估为我们想要包含的 属性,但是有没有一种方法可以微调属性的选择?

据我所知,EF Core 中不允许过滤包含。看起来确实有一个 github 项目添加了此功能,可能适用于您的情况。 https://github.com/zzzprojects/EntityFramework-Plus/wiki/EF-Query-IncludeFilter-%7C-Entity-Framework-Include-Related-Entities-using-Where-Filter