总结查看 .NET EF 生成的 SQL 的 3 种方式,亲测可用

15 篇文章 1 订阅

image

前言

整理总结了一下,查看 .NET EF 生成的 SQL 语句的方式还是不少的,程序员的智慧果然不可限量 _

方式一:在 Web.config 中配置

  1. 评价:简单但耗性能,开发时可用

  2. 配置代码:

    ......
      <entityFramework>
    		<interceptors>
    			<interceptor type="System.Data.Entity.Infrastructure.Interception.DatabaseLogger, EntityFramework">
    				<parameters>
    					<parameter value="d:\eflog\efsql.log" />
    					<parameter value="true" type="System.Boolean" />
    				</parameters>
    			</interceptor>
    		</interceptors>
    		......
      </entityFramework>
    </configuration>
    
    • 说明

      需要先创建好 d:\eflog 目录

方式二:代码,出错时写入 EF 生成的 SQL,方便调查(推荐)

  1. 第 1 种方法就是使用监听器拦截,参考前文 分享一个 .NET 通过监听器拦截 EF 消息写日志的详细例子,这种方法的优点就是一经配置,项目中所有使用 EF 的地方都可以拦截。

  2. 第 2 种方法就是在每一个使用 EF 的方法中加上以下语句:

    DbConext.Database.Log = (c) => { console.write(c); }
    

    这种方法的优点就是灵活,可以只写在有需要进行跟踪的 EF 方法里。

方式三:SQL Server Profiler,适合于开发阶段

  1. 前提是使用 SQL Server 数据库

  2. 实践中发现 SQL Server Profiler 的 SQL 比较多,需要做比较多的配置,对 SQL Server Profiler 不太熟悉的话,用起来比较困难。

  3. 评价:如果用的是 SQL Server 数据库,又不想采用方式一和方式二,可以试试这个

我是老杨,一个奋斗在一线的资深研发老鸟,让我们一起聊聊技术,聊聊程序人生,共同学习,共同进步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值