共计 2 篇文章

DbSet 两种 Where 查询的性能问题。

说白了 DBSet.Where() 有两个重载,一个是IQueryable还有一个是IEnumerable,前者则是会延迟执行,而后者则是将整个数据集加载出来之后再进行Where查询。 IQueryable这个查询对象接收的是Expression<Func<T,bool>>,也就是一个表达式树,他将会把查询条件解析成SQL,在数据源提供器里面执行查询。 而List是一个集合,他接收的是一个Func<T,bool>,也就是一个查询委托,他则是将整个DBSet加载出来放在内存之后, ...