我一直在互联网上搜索以找出 Func 和 Expression Func 之间的区别,不知何故我明白了,第一个只是一个函数获取数据然后在内存中应用该函数但第二个将其转换为 sql 并运行它在数据库中,在我运行这两个查询之后:
public IEnumerable<T> SelectAll(Expression< Func<T, bool>> predicate)
{
return table.Where(predicate).ToList();
}
public IEnumerable<T> SelectAll(Func<T, bool> predicate)
{
return table.Where(predicate).ToList();
}
我把断点放在返回上,第一个它返回 12 行,第二个它返回 1200 行,谓词是:
s=>s.id="12345"
第二个,在获取数据后应用谓词,我的问题是,我们在处理数据库时通常应该使用表达式 func 吗?
慕侠2389804
相关分类