Sql监听功能

调试查看ORM生成的SQL



  db.IsEnableLogEvent = true; 
  db.LogEventStarting = (sql,pars)=>{
     console.WriteLine(sql);
     //在这儿打好断点,下面的方法调用都会进入该断点
  };
  
  var list= db.queryable<T>().ToList()




项目应用

    //日志记录功能
    public class Log 
    {
       
        public void Init()
        {
            Console.WriteLine("启动Log.Init");
            using (var db = SugarDemoDao.GetInstance())
            {
                var a1 = db.Queryable<Student>().Where(it => it.id == 1).ToList();
                var a2 = db.Queryable<Student>().OrderBy(it => it.id).ToList();
            }
        }
        public class SugarConfigs
        {
            public static Action<string, string> LogEventStarting = (sql, pars) =>
            {
                Console.WriteLine("starting:" + sql + " " + pars);
                
                using (var db = SugarDemoDao.GetInstance())
                {
                    //日志记录件事件里面用到数据库操作 IsEnableLogEvent一定要为false否则将引起死循环,并且要新开一个数据实例 像我这样写就没问题。
                    db.IsEnableLogEvent = false;
                    db.ExecuteCommand("select 1");
                }
            };
            public static Action<string, string> LogEventCompleted = (sql, pars) =>
            {
                Console.WriteLine("completed:" + sql + " " + pars);
            };
        }
        /// <summary>
        /// SqlSugar
        /// </summary>
        public class SugarDemoDao
        {
            public static SqlSugarClient GetInstance()
            {
                var db = new SqlSugarClient(SugarDao.ConnectionString);
                db.IsEnableLogEvent = true;//启用日志事件
                db.LogEventStarting = SugarConfigs.LogEventStarting;
                db.LogEventCompleted = SugarConfigs.LogEventCompleted;
                return db;
            }
        }
    }


收藏到朋友圈: