首页 > 代码库 > Entity Framework with MySQL 学习笔记一(查看EF和SQL记入)
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=http://www.mamicode.com/"D:\vs2014\ProjectLearn\entitysix\EFLog\LogOutput.txt"/> <!--指定你要保存文件到哪--> <parameter value=http://www.mamicode.com/"false" type="System.Boolean"/> <!--false表示每次重启app就"不会"把之前的洗掉,true就会--> </parameters> </interceptor> </interceptors></entityFramework>
运行后就可以查看了
Opened connection at 2014/9/27 17:43:42 +08:00SELECT`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: EFMySqlDataReaderClosed connection at 2014/9/27 17:43:42 +08:00
大概是这样。
如果你有更好用有容易安装的,请告诉我吧!感谢 ^^
Entity Framework with MySQL 学习笔记一(查看EF和SQL记入)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。