实体框架ObjectSet

时间:2012-10-26 13:39:38

标签: c# entity-framework c#-4.0

快速提问。采用我为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。

1 个答案:

答案 0 :(得分:4)

在您的代码示例中,他将使用谓词作为select语句的一部分,并仅选择所请求的记录。

但是,您应该知道在使用“ToList()”方法之后,如果您将从此方法中获取返回的值并对其使用“Where”扩展方法,那么它将违反数据已经在记忆中。