0
点赞
收藏
分享

微信扫一扫

ADO.NET Entity Framework CodeFirst 如何输出日志(EF 5.0)

小典典Rikako 2022-09-05 阅读 85

ADO.NET Entity Framework CodeFirst 如何输出日志(EF4.3) 用的EFProviderWrappers ,这个组件好久没有更新了,对于SQL执行日志的解决方案的需求是杠杠的,今天给大家介绍一个更好的组件Clutch.Diagnostics.EntityFramework

​​ADO.NET Entity Framework CodeFirst 如何输出日志(EF4.3)​​​ 用的EFProviderWrappers ,这个组件好久没有更新了,对于SQL执行日志的解决方案的需求是杠杠的,今天给大家介绍一个更好的组件​​Clutch.Diagnostics.EntityFramework​​,可以通过Nuget 获取:

​​

ADO.NET Entity Framework CodeFirst 如何输出日志(EF 5.0)_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

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

在方法内部通过 context.Command.CommandText 可以获得你的ef的sql命令的内容。

然后在程序的入口启用SQL日志输出实现:

// Enable Tracing queries
DbTracing.Enable();
// Adding the listener (implementation of IDbTracingListener)
DbTracing.AddListener(new




举报

相关推荐

0 条评论