1:
Linq 性能优化
我查了一些资料 说 linq 某些函数(比如grouy by)可以预载一些数据
比如 var query = from t in tab select t group by t.cate
当执行一些命令 比如foreach count 才会真正的执行
但是这都只是linq to sql 的 想问问 有没有相关的文章介绍linq是如何优化的
还有就想问问 lamba表达式 和这有关系么?我觉得和linq差不多哎2:
IEnumerable 和 IQueryable 区别
我是找了个帖子http://stackoverflow.com/questions/252785/what-is-the-difference-between-iqueryablet-and-ienumerablet 但是不太明白
里头说 IQueryable 继承IEnumerable 但是多了2个属性 (一个是provider 一个是算是表达形式吧 我理解就是把数据放到何种数据结构中优化查询)
Linq 性能优化
我查了一些资料 说 linq 某些函数(比如grouy by)可以预载一些数据
比如 var query = from t in tab select t group by t.cate
当执行一些命令 比如foreach count 才会真正的执行
但是这都只是linq to sql 的 想问问 有没有相关的文章介绍linq是如何优化的
还有就想问问 lamba表达式 和这有关系么?我觉得和linq差不多哎2:
IEnumerable 和 IQueryable 区别
我是找了个帖子http://stackoverflow.com/questions/252785/what-is-the-difference-between-iqueryablet-and-ienumerablet 但是不太明白
里头说 IQueryable 继承IEnumerable 但是多了2个属性 (一个是provider 一个是算是表达形式吧 我理解就是把数据放到何种数据结构中优化查询)
编译运行的时候会在最后生成sql语句执行查询,比如你写了多个查询,也只生成一条sql语句
2 我理解的就是形式不同而已
2、IQueryable继承IEnumerable接口,增加里几个属性,具体可以参考MSDN
http://msdn.microsoft.com/zh-cn/library/bb351562.aspx
2. 我也不是太明白,大概基本就是IEnumerable只是对内存对象进行query,想List<T>, Array等。IQueryable 可以对外部资源进行Query,像数据库。如果query外部资源,通过属性query provider进行。query的时候会把query expression翻译成外部资源可以执行的语句,就像Entity Framework,就会把linq保存成Query Expression,然后执行的时候翻译成sql 语句,在数据库中执行。
http://www.cnblogs.com/yukaizhao/archive/2010/05/21/linq-to-sql-10-performance-tips.html
LinQ是必须学好的一种查询语言,就像sql一样的查询语言,linq查询中可以使用lamba表达式。例如:
int[] arrTest = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };
var temp = from arr in arrTest
where arr < 5 orderby arr
select arr ;与var temp = arrTest.Where(p=> p<5).Select(p => p).OrderBy(p=>p);是等价的,且p=> p<5为lamba表达式