Linq表达式只需要加载前n条记录

时间:2018-02-01 08:58:33

标签: c# entity-framework linq linq-expressions

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

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

抛出属性表达式无效的错误。我理解表达式应该只评估我们想要包含的属性,但有没有办法可以微调属性的选择?

1 个答案:

答案 0 :(得分:0)

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