如果在使用EF进行数据库操作时记录数据库操作日志

为了便于开发、测试、生产环境中可以快速的排查数据库相关问题,我们在使用EF进行数据库操作的时候可以记录日志,有两种方式可以记录日志:

一、在配置文件中配置

  <entityFramework>
    <interceptors>
      <interceptor type="System.Data.Entity.Infrastructure.Interception.DatabaseLogger, EntityFramework">
        <parameters>
          <parameter value="E:\log.txt" />
          <parameter value="true" type="System.Boolean" />
        </parameters>
      </interceptor>
    </interceptors>
  </entityFramework>

 

二、可以在自定义的DbContext中记录日志

    public class TestDbContext : DbContext
    {
        public TestDbContext()
            : base()
        {
            this.Configuration.LazyLoadingEnabled = false;
            this.Configuration.ProxyCreationEnabled = false;

            Database.Log = Log;
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            Database.SetInitializer<TestDbContext>(null);
            base.OnModelCreating(modelBuilder);
        }

        private void Log(string log)
        {
            Console.WriteLine(log);
        }

        public DbSet<LouPan> LouPan
        {
            get; set;
        }
    }

 

posted on 2019-07-01 16:41  老有所依  阅读(429)  评论(0)    收藏  举报

导航