我有以下基本方法:
public IQueryable<T> All
{
get
{
return Context.DataSet<T>();
}
}
public IQueryable<T> Search(Func<T, bool> where)
{
return this.All.Where(where); // compiling error, since it returns IEnumerable by default. Why not returning IQueryable?
}
但是,当我在服务类中使用“全部”属性时,它解析为 IQueryable
private List<CustomerDomainModel> PrepareBaseResultingData(int id)
{
IQueryable<CustomerDomainModel> custs = _customerRepository.All.Where(c => c.ID == id); // it returns IQueryable by default so it is good!
return custs.ToList();
}
“Where 子句”扩展方法返回 IEnumerable 或 IQuaryable 是否有任何原因?
编辑问题:
为什么 Search 方法有编译错误?我原以为“this.All.Where(where)”会返回 IQueryable