entityframework lamda 使用where时的注意事项
2024-10-20 07:43:59
我在项目中做了个底层 访问数据库泛型类
BaseEFDao<T>
在获取实体模型的时候使用了
Entities.CreateObjectSet<T>().Where(Func<T,bool> 你懂的) 的方法
后来经过使用发现这是一种极其不科学的使用方法。
检测他的执行的sql语句的时候发现 居然是获取了这个表里面的所有的数据然后在程序中使用类似于linq to object的方式执行where
如果表里面的数据量少的话 当然不会发现有什么影响,但是对于大数据量的表就会抛出内存溢出异常
我暂时找到的方法是 对于 大数据的表特殊处理
if(typeof(T)=="大数据的表")
{
Entities.大数据的表.Where(expression)
}
即可
总结起来还是使用.CreateObjectSet<T>()的时候出现的异常
参考 :
linq to sql中慎用Where<T>(Func<TSource, bool> predicate),小心被Linq给"骗"了!
http://www.360doc.com/content/13/0522/14/432969_287259702.shtml
如果大神有更好的解决办法 还请赐教
最新文章
- 1、开篇:公司管理经验谈 - CEO之公司管理经验谈
- Vundle的安装
- ORACLE rowid切分大表
- sql语句查询数据库表结构信息
- sortedArrayUsingComparator
- Linux服务器上监控网络带宽的18个常用命令(转)
- grub配置文件grub.conf详细说明
- shell编程三大神器之awk
- 基于angular实现模拟微信小程序swiper组件
- java怎么发http请求
- Mahout LDA 聚类
- Android探究之View的绘制流程
- 微信小程序自定义组件
- ssm框架中从controller传值给jsp的方式
- web项目部署以及放到ROOT目录下
- ubuntu 删除自带软件的方法
- #1075 : 开锁魔法III
- 第三章&#160;列表(c)有序列表
- 在 Python 中使用 GDB 来调试 转载
- python使用md5处理下载图片
热门文章
- [New Portal]Windows Azure Virtual Machine (21) 将本地Hyper-V的VM上传至Windows Azure Virtual Machine
- Maven提高篇系列之(五)——处理依赖冲突
- SQL--Order By
- 完美且精准的 IE10- 版本检测。
- c# 打开指定的网址
- Emit学习(3) - OpCodes - 动态添加属性、构造函数、方法
- .NET项目开发的几个非常重要的项目设置
- HTTP必知必会
- 【开源】Ionic项目实例《Ionic中文社区》
- (转)Android 系统 root 破解原理分析