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); } }
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; } }
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)}"); } }
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); }