首页 > 解决方案 > 项目上下文对象所需的 Linq 过滤器

问题描述

我正在尝试从 MS Project 中获取过滤列表,并通过使用类似于 contains 的方式过滤名称,以便我们可以返回一组减少的结果进行处理。

projContext.Load(projContext.Projects, qp => qp.Include(qr => qr.Id, qr => qr.Name));

我似乎已经用尽了我所知道的所有选项,并且尝试使用 contains 对我不起作用。

Intellisense 允许这样做。. . (但在运行时不喜欢它)

projContext.Load(projContext.Projects, qp => qp.Include(qr => qr.Id, qr => qr.Name.Contains("myfilter")));

标签: c#linqms-project

解决方案


.Include()是一个 EF Query 扩展,其中包含您请求的导航属性,因为 Id 和 Name(由于您没有提供模型类而无法确定)大多数肯定是存储在数据库中的值,您不必包含它们关于您的查询。如果您希望按包含过滤以最小化查询结果,只需在您的查询中添加一个过滤器,如下所示:

   projContext.Projects.Where(project => project .Name.Contains("myfilter")));

推荐阅读