private static void ExecuteSql(this IDbConnection db, IDbTransaction transaction, string createTableSql) { DapperLambdaExt.DebuggingSqlString(createTableSql); if (transaction == null) { var trans = db.BeginTransaction(); try { db.Execute(createTableSql, transaction: trans); trans.Commit(); } catch (Exception ex) { trans.Rollback(); DapperLambdaExt.DebuggingException(ex, createTableSql); throw new DapperLamException(ex.Message, ex, createTableSql); } } else { try { db.Execute(createTableSql, transaction: transaction); } catch (Exception ex) { DapperLambdaExt.DebuggingException(ex, createTableSql); throw new DapperLamException(ex.Message, ex, createTableSql); } } }
/// <summary> /// 根据实体类创建数据库表 /// </summary> /// <typeparam name="T">实体类类型</typeparam> /// <param name="db"></param> /// <param name="transaction"></param> public static void CreateTable <T>(this IDbConnection db, IDbTransaction transaction = null) { var dbAdapter = AdapterFactory.GetAdapterInstance(db.GetAdapter()); var entityDef = EntityHelper.GetEntityDefine <T>(); var createTableSql = dbAdapter.CreateTableSql(entityDef.Item1, entityDef.Item2); DapperLambdaExt.DebuggingSqlString(createTableSql); if (transaction == null) { var trans = db.BeginTransaction(); try { db.Execute(createTableSql, transaction: trans); trans.Commit(); } catch (Exception ex) { trans.Rollback(); DapperLambdaExt.DebuggingException(ex, createTableSql); throw new DapperLamException(ex.Message, ex, createTableSql); } } else { try { db.Execute(createTableSql, transaction: transaction); } catch (Exception ex) { DapperLambdaExt.DebuggingException(ex, createTableSql); throw new DapperLamException(ex.Message, ex, createTableSql); } } }
public static void CreateTable(this IDbConnection db, SqlTableDefine tableDefine, List <SqlColumnDefine> columnList, IDbTransaction transaction = null) { var dbAdapter = AdapterFactory.GetAdapterInstance(db.GetAdapter()); var createTableSql = dbAdapter.CreateTableSql(tableDefine, columnList); DapperLambdaExt.DebuggingSqlString(createTableSql); if (transaction == null) { var trans = db.BeginTransaction(); try { db.Execute(createTableSql, transaction: trans); trans.Commit(); } catch (Exception ex) { trans.Rollback(); DapperLambdaExt.DebuggingException(ex, createTableSql); throw new DapperLamException(ex.Message, ex, createTableSql); } } else { try { db.Execute(createTableSql, transaction: transaction); } catch (Exception ex) { DapperLambdaExt.DebuggingException(ex, createTableSql); throw new DapperLamException(ex.Message, ex, createTableSql); } } }
private static async Task <int> ExecuteSqlAsync(this IDbConnection db, IDbTransaction transaction, string createTableSql) { DapperLambdaExt.DebuggingSqlString(createTableSql); if (transaction == null) { var trans = db.BeginTransaction(); try { var ret = await db.ExecuteAsync(createTableSql, transaction : trans); trans.Commit(); return(ret); } catch (Exception ex) { trans.Rollback(); DapperLambdaExt.DebuggingException(ex, createTableSql); throw new DapperLamException(ex.Message, ex, createTableSql); } } else { try { return(await db.ExecuteAsync(createTableSql, transaction : transaction)); } catch (Exception ex) { DapperLambdaExt.DebuggingException(ex, createTableSql); throw new DapperLamException(ex.Message, ex, createTableSql); } } }