Esempio n. 1
0
        public void Execute(Action <WePorjectDbContext> actions)
        {
            var context = new WePorjectDbContext();
            var log     = new DataLog();

            context.Database.Log = log.AddLog;
            var sw = new Stopwatch();

            sw.Start();
            try
            {
                context.Database.BeginTransaction();
                actions(context);
                context.SaveChanges();
                context.Database.CurrentTransaction.Commit();
                sw.Stop();
                if (sw.ElapsedMilliseconds >= warnMilliseconds)
                {
                    LogHelper.AddSqlLog($"[EF Execute 2]警告({sw.ElapsedMilliseconds}ms):{actions.Target.GetType()}.{actions.Method.Name}\r\n{string.Join("", log.Logs)}");
                }
            }
            catch (Exception ex)
            {
                sw.Stop();
                context.Database.CurrentTransaction.Rollback();
                LogHelper.Fatal(ex.Message, ex);
            }
        }
Esempio n. 2
0
        public T Execute <T>(Func <WePorjectDbContext, T> func)
        {
            var context = new WePorjectDbContext();
            var log     = new DataLog();

            context.Database.Log = log.AddLog;
            var sw = new Stopwatch();

            sw.Start();
            try
            {
                context.Database.BeginTransaction();
                T t = func(context);
                context.SaveChanges();
                context.Database.CurrentTransaction.Commit();
                sw.Stop();
                if (sw.ElapsedMilliseconds >= warnMilliseconds)
                {
                    LogHelper.AddSqlLog($"[EF Execute 1]警告({sw.ElapsedMilliseconds}ms):{func.Target.GetType()}.{func.Method.Name}\r\n{string.Join("", log.Logs)}");
                }
                return(t);
            }
            catch (Exception ex)
            {
                sw.Stop();
                context.Database.CurrentTransaction.Rollback();
                LogHelper.Fatal(ex.Message, ex);
                throw;
            }
        }
Esempio n. 3
0
        public void Query(Action <WePorjectDbContext> actions)
        {
            var context = new WePorjectDbContext();
            var log     = new DataLog();

            context.Database.Log = log.AddLog;
            var sw = new Stopwatch();

            sw.Start();
            actions(context);
            sw.Stop();
            if (sw.ElapsedMilliseconds >= warnMilliseconds)
            {
                LogHelper.AddSqlLog($"[EF Query 2]警告({sw.ElapsedMilliseconds}ms):{actions.Target.GetType()}.{actions.Method.Name}\r\n{string.Join("", log.Logs)}");
            }
        }
Esempio n. 4
0
        public T Query <T>(Func <WePorjectDbContext, T> func)
        {
            var context = new WePorjectDbContext();
            var log     = new DataLog();

            context.Database.Log = log.AddLog;
            var sw = new Stopwatch();

            sw.Start();
            var result = func(context);

            sw.Stop();
            if (sw.ElapsedMilliseconds >= warnMilliseconds)
            {
                LogHelper.AddSqlLog($"[EF Query 1]警告({sw.ElapsedMilliseconds}ms):{func.Target.GetType()}.{func.Method.Name}\r\n{string.Join("", log.Logs)}");
            }
            return(result);
        }