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 会在我的谓词进入数据库之前应用我的谓词并使用它只返回我要求的记录,还是会返回所有内容然后应用谓词?

谢谢,威尔基。

4

1 回答 1

4

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

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

于 2012-10-26T14:20:33.643 回答