ef联表查询速度_EF查询之性能优化

关于EF性能优化的讲解,推荐阅读下面的博文

a.Entity Framework 延伸系列目录

b.采用EntityFramework.Extended 对EF进行扩展(Entity Framework 延伸系列2)

c.EntityFramework执行存储过程中遇到的那些坑

介绍EF性能优化前补充EF的优缺点:

1.EF的优点:

* (1)极大提高开发效率。EF是微软自己的产品,跟VS开发工具集成度比较好,开发中代码都是强类型的,写代码效率非常高,自动化程度非常高,采用命令式的编程。

* (2)EF提供的模型设计器非常强大,不仅仅带来了设计数据库的革命,其附带的自动化生成模型代码的功能也极大地提高了开发和架构设计的效率。

* (3)EF跨数据库支持是ORM框架的主要功能点之一,有着仅仅通过改变配置就可以做到跨数据库的能力,更换数据库非常方便。

2.EF的缺点:

* (1)EF性能不好,性能有损耗。(生成sql脚本阶段)在复杂查询的时候生成的SQL脚本效率不是很高。

* (2)数据库端性能损耗是一样的,但是在将对象状态转换为SQL语句时会损失性能。

一、EF性能优化

1.延迟加载的开关

a.默认情况延迟加载是开启的,延迟加载的开启方式有两种:

(1)第一种是在dbcontext中设置

public MyDbContext(System.Data.Common.DbConnection oConnection)

: base(oConnection, true)

{

this.Configuration.LazyLoadingEnabled = true;

}

(2)第二种是在使用DbContext的时候设置

using (var db = new Core.EF.MyDbContext())

{

db.Configuration.LazyLoadingEnabled = false;

var classes= db.T_Student.Where(c => true).FirstOrDefault();

int a = 3;

}

b.当我们不需要使用子表的时候可以关闭延迟加载

using (var db = new Core.EF.MyDbContext())

{

db.Configuration.LazyLoadingEnabled = false;

var classes= db.T_Student.Where(c => true).FirstOrDefault();

int a = 3;

}

c.当我们需要使用子表的时候可以打开延迟加载

using (var db = new Core.EF.MyDbContext())

{

db.Configuration.LazyLoadingEnabled = true;

var c

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值