C# .Include()特定类型的派生类?

C# .Include()特定类型的派生类?,c#,.net,entity-framework,C#,.net,Entity Framework,这个Lambda查询有什么问题?我希望能够只包括特定类型的ProjectDocs,可能有很多类型的ProjectDocs ICollection<Project> projects = db.Projects .Include(i => i.ProjectDoc.OfType<Cover>().Where(s => s.Status == "Active")) .Include(i => i.ProjectDoc.OfType&

这个Lambda查询有什么问题?我希望能够只包括特定类型的ProjectDocs,可能有很多类型的ProjectDocs

 ICollection<Project> projects = db.Projects
      .Include(i => i.ProjectDoc.OfType<Cover>().Where(s => s.Status == "Active"))
      .Include(i => i.ProjectDoc.OfType<Summary>().Where(s => s.Status == "Active"))
      .Include(i => i.User)
      .Include(i => i.ProjectTag.Select(t => t.Tag)).ToList();

“Project”上的导航属性是ProjectDoc。派生类没有导航属性。当我尝试时,我得到了大量的额外密钥。

不支持此方案-您只能加载或不加载一组相关实体,但不能应用筛选表达式仅加载实体的子集


列出了支持的不同表达式,并声明该方法仅将工作委托给一个底层的
Include()
方法,例如,将字符串作为参数。此方法的文档和链接页面或多或少表明此方法不受支持。

您有任何错误吗?@Hamlet,将错误添加到主要问题中。好的,假设我进入一个视图,如何在视图中应用派生类过滤器?取决于您的继承模型-例如,使用TPH,您可以只在discriminator列上进行过滤。
 The Include path expression must refer to a navigation property defined 
 on the type. Use dotted paths for reference navigation properties and the 
 Select operator for collection navigation properties.
 Parameter name: path