protected TResult useDbContext <TResult>(Func <BdcContext, TResult> action) { using (var __dbcontext = new BdcContext()) { return((TResult)action.DynamicInvoke(__dbcontext)); } }
/// <summary> /// 获取服务器端配置信息 /// </summary> /// <typeparam name="T">返回值类型</typeparam> /// <param name="key">配置项名称</param> /// <returns>配置值</returns> private static T getServerConfigValue <T>(string key) { using (var ctx = new BdcContext()) { string sql = "select cfgValue from Config where cfgKey=@key"; string value = ctx.Database.SqlQuery <string>(sql, new SqlParameter("key", key)).Single(); return((T)Convert.ChangeType(value, typeof(T))); } }
protected TResult useTransaction <TResult>(Func <BdcContext, TResult> action) { using (var __dbcontext = new BdcContext()) { using (var tx = __dbcontext.Database.BeginTransaction()) { try { TResult result = (TResult)action.DynamicInvoke(__dbcontext); __dbcontext.SaveChanges(); tx.Commit(); return(result); } catch (Exception ex) { tx.Rollback(); throw ex; } } } }