首页 > 其他 > 详细

Linq的一些记录

时间:2015-06-10 23:47:54      阅读:335      评论:0      收藏:0      [点我收藏+]

1.

IQueryable接口与IEnumberable接口的区别:  IEnumerable<T> 泛型类在调用自己的SKip 和 Take 等扩展方法之前数据就已经加载在本地内存里了,而IQueryable<T> 是将Skip ,take 这些方法表达式翻译成T-SQL语句之后再向SQL服务器发送命令,它并不是把所有数据都加载到内存里来才进行条件过滤。

2.

Linq使用Func<T, bool>时候会产生全表查询,使用Expression<Func<T, bool>>这个来避免,参考:http://www.cnblogs.com/dudu/archive/2012/04/01/enitity_framework_func.html

3.

EF的find方法是先从内存中查询,内存中没有才查询数据库。

4.

调用Load方法就会加载数据到内存中

5.

this.actionServer.Delete(t => list.Contains(t.Id)),使用这样的方法删除,会生成一天select语句,然后根据查询到的数据逐个删除,根据查到的数据生成多个删除语句

6.

仅对 LINQ to Entities 中已排序的输入支持方法“Skip”。必须在调用“Skip”方法之前调用方法“OrderBy”。(排序时用skip需要注意)

7.

在使用Json序列化EF的Model时,Model有导航属性,可以使用Select以避免导航属性在序列化时产生循环引用

Linq的一些记录

原文:http://www.cnblogs.com/RainbowInTheSky/p/4515475.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!