使用;从“中”;在LinqSpecs规范中?

使用;从“中”;在LinqSpecs规范中?,linq,linq-to-nhibernate,Linq,Linq To Nhibernate,我们正在使用LINQSpec为我们的NHibernate Linq查询创建规范,我有以下查询: from p in projects from pp in p.Personprojects where pp.Id.PersonId == userId select p 我想把 from pp in p.Personprojects where pp.Id.PersonId == userId 规范中的一部分 有办法吗 我目前的解决办法是 public override

我们正在使用LINQSpec为我们的NHibernate Linq查询创建规范,我有以下查询:

from p in projects
  from pp in p.Personprojects
  where pp.Id.PersonId == userId
  select p
我想把

 from pp in p.Personprojects   
 where pp.Id.PersonId == userId
规范中的一部分

有办法吗

我目前的解决办法是

public override Expression<Func<Project, bool>> IsSatisfiedBy()
{
  return p => p.Personprojects.Count(pp => pp.Id.PersonId == _userId)>0;
}
公共重写表达式Issatifiedby()
{
返回p=>p.Personprojects.Count(pp=>pp.Id.PersonId==\u userId)>0;
}

这对我来说并不是最优的…

与其将
计数
与0进行比较,不如使用
任意

public override Expression<Func<Project, bool>> IsSatisfiedBy()
{
    return p => p.Personprojects.Any(pp => pp.Id.PersonId == _userId);
}
公共重写表达式Issatifiedby()
{
返回p=>p.Personprojects.Any(pp=>pp.Id.PersonId==\u userId);
}

是的,这是一个改进,但与在from语句中加入表相比,它有什么不同?