快速提问。采用我为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会在转到数据库之前应用我的谓词并使用它来仅返回我要求的记录,还是会返回所有内容然后应用谓词?
谢谢, Wilky。
答案 0 :(得分:4)
在您的代码示例中,他将使用谓词作为select语句的一部分,并仅选择所请求的记录。
但是,您应该知道在使用“ToList()”方法之后,如果您将从此方法中获取返回的值并对其使用“Where”扩展方法,那么它将违反数据已经在记忆中。