包括一个集合,然后是一个级别的集合

Qua*_*yen 2 c# linq entity-framework

我正在尝试使用EF 7查询集合和子集合.这是代码:

public async Task < List < Table >> GetAllTable() {
  var tableList = await db.Tables.Include(o => o.Checks.Select(i => i.CheckItems)).ToListAsync();
  return tableList;

}
Run Code Online (Sandbox Code Playgroud)

我正在遵循MSDN的语法.但是,当我运行此代码时,我收到以下错误.有谁知道这里出了什么问题?谢谢!

InvalidCastException:无法将类型为"Remotion.Linq.Clauses.Expressions.SubQueryExpression"的对象强制转换为"System.Linq.Expressions.MemberExpression".**Microsoft.Data.Entity.Query.EntityQueryModelVisitor.b__30_2(<> f__AnonymousType2`2 <> h__TransparentIdentifier0)

Cha*_*ger 12

您正在阅读的文档适用于EF 5.

EF 7 的设计会议记录说这个的语法已经改变了 - 试试这个:

db.Tables.Include(t => t.Checks)
    .ThenInclude(c => c.CheckItems)
    .ToListAsync()
Run Code Online (Sandbox Code Playgroud)