[英]LINQ Projected Filtering C#
我想基于包含的表过滤我的LINQ查询但是遇到了一些麻烦。
这是原始声明,它有效:
return
this.ObjectContext.People.
Include("Careers").
Include("Careers.Titles").
Include("Careers.Titles.Salaries");
现在我正在尝试使用预计过滤来过滤职业,但我遇到了麻烦。 它编译但它遗漏了标题和工资表,这会导致运行时错误,我似乎无法将这些表添加回来:
var query1 = (
from c in
this.ObjectContext.People.
Include("Careers").
Include("Careers.Titles").
Include("Careers.Titles.Salaries")
select new
{
c,
Careers = from Careers in c.Careers
where Careers.IsActive == true
select Careers
});
var query = query1.AsEnumerable().Select(m => m.c);
return query.AsQueryable();
如何在过滤的查询中包含标题和工资表?
您可以大大简化查询,这可以解决您的问题。 我假设你想要所有至少有1个活跃职业的人:
var query =
from c in
this.ObjectContext.People.
Include("Careers").
Include("Careers.Titles").
Include("Careers.Titles.Salaries")
where c.Careers.Any(c => c.IsActive);
return query;
我会尝试类似的东西,
var query = from p in ObjectContext.People
join c in ObjectContext.Careers on p equals c.Person
where c.IsActive
select p;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.