为什么IQueryable在Where子句中执行?

时间:2012-04-28 13:37:36

标签: c# linq entity-framework linq-to-entities

我有

public IQueryable<Guid> AccessibleCities
{
    get
    {
        return CityRepository
            .FindAll(a => <CONDITIONS>);
    }
}

CityRepository.FindAll实现为:

public virtual IQueryable<TLookup> FindAll(Expression<Func<TLookup, bool>> predicate)
{
  return DataContext.GetSet<TLookup>().Where(predicate);
}

我称之为

anotherRepository
    .FindAll(a => AccessibleCities.Any(b => ANOTHER CONDITION));

当我调用最后一个时,它会生成两个查询,而不是将AccessibleCities添加为查询。

请帮帮我:)。

1 个答案:

答案 0 :(得分:1)

您的最终查询无法正常运行;它默认情况下不会连接。

尝试PredicateBuilder课程。看起来它应该适用于你想要实现的目标。