我想使用这个查询,所以我不会得到所有子行,而是最后 10 个。
var list = await _context.Parent
.Include(gs => gs.Child
.OrderBy(gsm => gsm.Time)
.TakeLast(10))
.ToListAsync();
try catch 关闭后出现以下错误讯息:
如何设定查询字符串以获取最后一个子行?
uj5u.com热心网友回复:
这不是Include
方法的作业原理。正如例外讯息中的示例所暗示的,传递的谓词的预期回传值是原始物件的导航属性。它的用途只是定义应在查询结果中加载哪些导航属性。
在您的示例中,您首先要定义应加载子导航:
var list = await _context.Parent
.Include(parent => parent.Child)
.ToListAsync();
然后在第二步中,您需要执行以下操作:
list.ForEach(parent => parent.Child
.OrderBy(gsm => gsm.Time)
.TakeLast(10));
有关该Include
方法的更多信息,请参见 microsoft 档案:https : //docs.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.entityframeworkqueryableextensions.include? view = efcore- 5.0
0 评论