ADO.NET Entity Framework CodeFirst 如何输出日志(EF 5.0)
2013-08-08 22:08
555 查看
ADO.NET Entity Framework CodeFirst 如何输出日志(EF4.3) 用的EFProviderWrappers ,这个组件好久没有更新了,对于SQL执行日志的解决方案的需求是杠杠的,今天给大家介绍一个更好的组件Clutch.Diagnostics.EntityFramework,可以通过Nuget 获取:
这个框架定义了一个接口 IDbTracingListener:
在方法内部通过 context.Command.CommandText 可以获得你的ef的sql命令的内容。
然后在程序的入口启用SQL日志输出实现:
这个框架定义了一个接口 IDbTracingListener:
namespace Clutch.Diagnostics.EntityFramework { public interface IDbTracingListener { void CommandExecuting(DbTracingContext context); void CommandFinished(DbTracingContext context); void ReaderFinished(DbTracingContext context); void CommandFailed(DbTracingContext context); void CommandExecuted(DbTracingContext context); } } 实现这个接口,添加一个类,里面实现自己的SQL 日志记录:
using System; using System.Data.Common; using System.Diagnostics; using Clutch.Diagnostics.EntityFramework; /// <summary> /// Implementation of IDbTracingListener Class is used for tracing all SQL Queries to the entity framework database /// </summary> public class DbTracingListener : IDbTracingListener { public void CommandExecuted(DbConnection connection, DbCommand command, object result, TimeSpan duration) { Debug.WriteLine(command.CommandText); Debug.WriteLine(string.Format("Executed in: {0}", duration)); } public void CommandExecuting(DbConnection connection, DbCommand command) { } public void CommandFailed(DbConnection connection, DbCommand command, Exception exception, TimeSpan duration) { } public void CommandFinished(DbConnection connection, DbCommand command, object result, TimeSpan duration) { } }
在方法内部通过 context.Command.CommandText 可以获得你的ef的sql命令的内容。
然后在程序的入口启用SQL日志输出实现:
// Enable Tracing queries DbTracing.Enable(); // Adding the listener (implementation of IDbTracingListener) DbTracing.AddListener(new DbTracingListener());
相关文章推荐
- ADO.NET Entity Framework CodeFirst 如何输出日志(EF 5.0)
- ADO.NET Entity Framework CodeFirst 如何输出日志(EF4.3)
- ADO.NET Entity Framework CodeFirst 如何输出日志(EF4.3)
- ADO.NET Entity Framework 如何输出日志(EF4.0, Log4Net)
- 如何得到EF(ADO.NET Entity Framework)查询生成的SQL? ToTraceString Database.Log
- 如何创建新模块 DotNetNuke 6 & Entity Framework Code First
- 如何创建新模块 DotNetNuke 6 & Entity Framework Code First
- VS2010安装EFCodeFirst后无法显示ADO.NET DbContext Generator项目的解决方案
- Entity Framework Code First Migrations--EF 的数据迁移
- Entity Framework Code First ---EF Power Tool 和MySql一起使用遇到的问题
- [转]Using Entity Framework (EF) Code-First Migrations in nopCommerce for Fast Customizations
- ADO.NET Entity Framework如何:手动配置实体框架项目
- ADO.NET Entity Framework如何:通过每种类型多个实体集定义模型(实体框架)
- 精进不休 .NET 4.5 (11) - ADO.NET Entity Framework 5.0 新特性, WCF Data Services 5.0 新特性(OData V3)
- EF Power Tools Beta 2 生成 Entity Framework Code First 提示 参数错误 hresult e_invalidarg
- ADO.NET Entity Framework(EF)
- ADO.NET Entity Framework如何:定义单个实体映射到两个表的模型
- ADO.NET Entity Framework 如何:定义连接字符串(实体框架)
- 如何让Sqlite支持Entity Framework Code-First
- (转 )Entity Framework Code First使用者的福音 --- EF Power Tool使用记之二(问题探究)