zoukankan      html  css  js  c++  java
  • Entity Framework with MySQL 学习笔记一(查看EF和SQL请求日志)

    做数据库的一向来都会很注意请求的次数还有语句。这关系到很多性能的问题。

    因此在使用EF的时候如果不了解原理很可能会搞出很糟糕的请求。

    所以呢,在还没有搞懂EF前最基本的是你得"看得见",EF为我们生成了什么样的 SQL语句,和访问了多少次SQL 

    其实有很多很好的工具可以实现这些东西,但是我懒的去找来试,所以呢找了一个简单又勉强可以用用的。

    这个是微软本身的日志 

    参考 : 

    http://msdn.microsoft.com/en-us/data/jj556606 -Logging Database Operations to a File (EF6.1 Onwards)

    在我们的web config 加上这个 interceptors 

    <entityFramework>
      <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
      <providers>
        <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
        <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      </providers>
      <interceptors>
        <interceptor type="System.Data.Entity.Infrastructure.Interception.DatabaseLogger, EntityFramework">
          <parameters>
            <parameter value="D:\vs2014\ProjectLearn\entitysix\EFLog\LogOutput.txt"/> <!--指定你要保存文件到哪-->
            <parameter value="false" type="System.Boolean"/> <!--false表示每次重启app就"不会"把之前的洗掉,true就会-->
          </parameters>
        </interceptor>
      </interceptors>
    </entityFramework>

    运行后就可以查看了 

    Opened connection at 2014/9/27 17:43:42 +08:00
    SELECT
    `Extent2`.`id`, 
    `Extent2`.`code`, 
    `Extent2`.`name`
    FROM `prod_category_vs_prod` AS `Extent1` INNER JOIN `prod` AS `Extent2` ON `Extent1`.`prod_category_id` = `Extent2`.`id`
     WHERE `Extent1`.`prod_id` = @EntityKeyValue1
    -- EntityKeyValue1: '2' (Type = Int32, IsNullable = false)
    -- Executing at 2014/9/27 17:43:42 +08:00
    -- Completed in 13 ms with result: EFMySqlDataReader
    
    Closed connection at 2014/9/27 17:43:42 +08:00

    大概是这样。

    如果你有更好用有容易安装的,请告诉我吧!感谢 ^^ 

  • 相关阅读:
    【工具】模板引擎 Velocity
    【Android】Android 彩信发送的两种方式+源代码
    【Win7】 建立无线局域网实现共享上网
    【Android】java.net.SocketException: Permission denied解决
    Android中使用Post请求(网友版)
    Android通过post请求发送一个xml,解析返回xml数据
    学用MVC4做网站六后台管理:6.1管理员
    学用MVC4做网站六:后台管理
    html5的新增的标签和废除的标签
    HTML5新增的属性和废除的属性
  • 原文地址:https://www.cnblogs.com/keatkeat/p/3997003.html
Copyright © 2011-2022 走看看