快速问答。采用我为EF存储库编写的以下方法:
public virtual IEnumerable<T> SelectWhere(Expression<Func<T, bool>> predicate)
{
using (CAMHS_DB db = new CAMHS_DB())
{
return db.CreateObjectSet<T>().Where(predicate).ToList<T>();
}
}EF是否会在访问数据库之前应用谓词,并使用它只返回我请求的记录,还是先返回所有内容,然后再应用谓词?
谢谢,威尔基。
发布于 2012-10-26 22:20:34
在您的代码示例中,他将使用谓词作为select语句的一部分,并且只选择被请求的记录。
但是,您应该意识到,在使用"ToList()“方法之后,如果您将从该方法获取返回值并对其使用"Where”扩展方法,那么它将与内存中已有的数据相冲突。
https://stackoverflow.com/questions/13088041
复制相似问题