用于日志Debug.Write web.config的Entity Framework拦截器

时间:2017-03-30 18:44:08

标签: c# entity-framework entity-framework-6

我想在开发时创建项目的Debug.Write记录器。所以我可以在代码配置上这样做:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        Action<string> print = message => Debug.WriteLine(message);
        Database.Log =print;
    }

但是我想在web.config文件中添加这个作为实体框架部分元素。有没有办法做到这一点?

<interceptors> 
  <interceptor type="System.Data.Entity.Infrastructure.Interception.DatabaseLogger, EntityFramework"> 
      ??????
  </interceptor> 
</interceptors>

1 个答案:

答案 0 :(得分:1)

您可以使用配置文件或基于代码的配置来配置拦截器。

请参阅以下有关如何执行此操作的内容(包括演示):

http://www.entityframeworktutorial.net/entityframework6/database-command-interception.aspx

假设你有以下拦截器

 EFCommandInterceptor: IDbCommandInterceptor

<强>配置

<entityFramework>
    <interceptors>
        <interceptor type="EF6DBFirstTutorials.EFCommandInterceptor, EF6DBFirstTutorials">
        </interceptor>
    </interceptors>
</entityFramework>

<强>代码

public class EF6CodeConfig : DbConfiguration
{
    public EF6CodeConfig()
    {
        this.AddInterceptor(new EFCommandInterceptor());
    }
}