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

因此在使用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 // :: +:
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: '' (Type = Int32, IsNullable = false)
-- Executing at // :: +:
-- Completed in ms with result: EFMySqlDataReader Closed connection at // :: +:

大概是这样。

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

Entity Framework with MySQL 学习笔记一(查看EF和SQL请求日志)的更多相关文章

  1. Entity Framework with MySQL 学习笔记一(安装)

    声明 :  数据库是Mysql,本人的程度只到会写sql语句(不会储蓄过程), c# 会基本的ADO.NET数据库访问,LINQ基础. 这篇只做个人学习|温习作用. 新手可以参考,也请高手指正错误, ...

  2. Entity Framework with MySQL 学习笔记一(拦截)

    参考 : http://msdn.microsoft.com/en-us/data/dn469464.aspx EF 允许我们在发送SQL请求和返回数据时做一些拦截的动作 比如可以自定义写 log , ...

  3. Entity Framework with MySQL 学习笔记一(乐观并发)

    在做项目时,通常我们对乐观并发有几种处理模式 1. 告诉用户此数据已被其他人捷足先登,更改了.你就算新一下重来吧. 2.直接把数据覆盖上去,我最大. 3.用被人的数据. 这里给出 code first ...

  4. Entity Framework with MySQL 学习笔记一(验证标签)

    直接上代码 [Table("single_table")] public class SingleTable { [Key] public Int32 id { get; set; ...

  5. Entity Framework with MySQL 学习笔记一(复杂类型 Complex Types)

    有时候我们希望在sql一个表里面的column, 一部分被分化成另一个class 典型的例子是 Address 直接看代码: [Table("member")] public cl ...

  6. Entity Framework with MySQL 学习笔记一(继承)

    基本上sql中要表示继承关系有3中方式. 分别是,1表继承(TPH),2表继承(TPC),3表继承(TPT) 1表 : Person id type name classroom office 1 s ...

  7. Entity Framework with MySQL 学习笔记一(关系整理版)

    1-1 设置 //DataAnnotation 1-1 | 1-0 table //SQLtable : member , columns : memberId, name //SQL basic l ...

  8. Entity Framework with MySQL 学习笔记一(insert,update,delete)

    先说说 insert 吧. 当EF执行insert时,如果我们传入的对象是有关联(1对多等)的话,它会执行多个语句 insert到多个表, 并且再select出来填充我们的属性(因为有些column默 ...

  9. Entity Framework with MySQL 学习笔记一(关系)

    这一篇说说 EF Fluent API 和 DataAnnotations 参考 : http://msdn.microsoft.com/en-us/data/jj591617.aspx http:/ ...

随机推荐

  1. migration vmware vms to openstack kvm 修改vmware windows scsi to ide

  2. D - Constructing Roads - 2421

    题意:有一些村庄需要修一些道路是所有村庄都可以连接,不过有些道路已经修好了,问题最少还需要修建的道路长度是多少. 输入的第一行是一个N代表N个村庄,下面是一个N*N的矩阵,代表着q->j的距离, ...

  3. oracle锁表解决方法

    SQL> select session_id from v$locked_object; SESSION_ID----------142 SQL> SELECT sid, serial#, ...

  4. String Format for DateTime [C#]

    This example shows how to format DateTime using String.Format method. All formatting can be done als ...

  5. nginx+keepalive主从双机热备+自动切换解决方案

    环境采集cenots 6.3 64位迷你安装,因为安装前,你需要做一些工作 yum install -y make wget 如果你愿意可以更新下系统,更换下yum源. 1.安装keepalive 官 ...

  6. Windows下搭建MySQL Master Slave[转]

    Windows下搭建MySQL Master Slave 一.背景 服务器上放了很多MySQL数据库,为了安全,现在需要做Master/Slave方案,因为操作系统是Window的,所以没有办法使用k ...

  7. Android 4.2 通知通过PendingIntent启动Activity失败的问题

    今天突然发现在Android 4.2手机上点击通知消息无法打开Activity的问题,具体Logcat信息如下: 01-09 11:37:43.733: WARN/ActivityManager(92 ...

  8. [转] Console命令详解,让调试js代码变得更简单

    http://www.cnblogs.com/see7di/archive/2011/11/21/2257442.html Firebug是网页开发的利器,能够极大地提升工作效率. 但是,它不太容易上 ...

  9. Extjs4学习

    1 Ext js初步 1.1 获取Extjs 下载extjs: 可以从http://extjs.org.cn/ 获得需要的extjs发布包及更多支持. 1.2 搭建学习环境: 假设您的机器已经安装my ...

  10. git 取消追踪

    git rm --cached filePath这个操作不会删除这个文件