private int ExecuteCommand(SqlConnection connection, ICreateTable createTable) { var sql = createTable.CreateTable(); var command = new SqlCommand(sql, connection); var result = command.ExecuteNonQuery(); return(result); }
public DynamoDbController(ICreateTable createTable, IPutItem putItem, IGetItem getItem, IUpdateItem updateItem, IDeleteTable deleteTable) { _createTable = createTable; _putItem = putItem; _getItem = getItem; _updateItem = updateItem; _deleteTable = deleteTable; }
public ConsoleApp( IOptions <Config> appSettings, IImportService import, ICreateTable createTable) { _createTable = createTable; _import = import; _appSettings = appSettings?.Value ?? throw new ArgumentNullException(nameof(appSettings)); }
public DynamoDbController(ICreateTable createTable, IPutItem putItem, IGetItem getItem, IUpdateItem updateItem, IDeleteItem deleteItem, ILoadTables loadTables) { _createTable = createTable; _putItem = putItem; _getItem = getItem; _updateItem = updateItem; _deleteItem = deleteItem; _loadTables = loadTables; }
internal void SetupTable() { Table = Db.DatabaseTools.GetCreateTableBuilder(TableName, IfTableExists.Throw); Table.Columns .Add("Id", DbType.Int32, isNullable: false, autoIncrement: true).AsPrimaryKey("pk_test") .Add("Name", DbType.String, size: "50").AsUnique("uk_name") //.WithCheck("Name like '%a'","ck_name") .Add("Uid", DbType.Guid); Table.TableOptionsFor(DbEngine.MySql, MySqlOptions.Table.AutoIncrementValueIs(1), MySqlOptions.Table.EngineIs(TableEngineType.InnoDb)); Table.Constraints.AddCheck("Name like '%a'", "ck_name") .IfDatabaseIs(DbEngine.PostgreSQL).Redefine("constraint ck_name check(\"Name\" like '%a')"); }
public static void Deploy() { ITransaction deploymentTransaction = SQLProviderFactory.GenerateTransaction(); try { HashSet <string> schemas = Instance.schemaObjects.Select(schemaObject => schemaObject.SchemaName).ToHashSet(); foreach (string schema in schemas) { ICreateSchema createSchema = SQLProviderFactory.GetCreateSchemaQuery(); createSchema.SchemaName = schema; createSchema.Execute(deploymentTransaction); } foreach (SchemaObject schemaObject in Instance.schemaObjects) { ICreateTable createTable = SQLProviderFactory.GetCreateTableQuery(); createTable.SchemaName = schemaObject.SchemaName; createTable.TableName = schemaObject.ObjectName; foreach (Field field in schemaObject.GetFields()) { FieldSpecification fieldSpec = new FieldSpecification(field.FieldType, field.DataSize, field.DataScale); if (field == schemaObject.PrimaryKeyField) { fieldSpec.IsPrimary = true; } createTable.Columns.Add(field.FieldName, fieldSpec); } createTable.Execute(deploymentTransaction); } foreach (Relationship relationship in Instance.schemaObjects.SelectMany(so => so.GetRelationships())) { string fkName = $"FK{relationship.ParentSchemaObject.ObjectName}_{relationship.RelatedSchemaObject.ObjectName}_{relationship.ForeignKeyField.FieldName}"; IAlterTable alterTableQuery = SQLProviderFactory.GetAlterTableQuery(); alterTableQuery.Schema = relationship.ParentSchemaObject.SchemaName; alterTableQuery.Table = relationship.ParentSchemaObject.ObjectName; alterTableQuery.AddForeignKey(fkName, relationship.ForeignKeyField.FieldName, relationship.RelatedSchemaObject.SchemaName, relationship.RelatedSchemaObject.ObjectName, relationship.ParentKeyField.FieldName, deploymentTransaction); } deploymentTransaction.Commit(); } finally { if (deploymentTransaction.IsActive) { deploymentTransaction.Rollback(); } } }
protected override DbCommand OnBuildCreateTableCommand(ICreateTable Query) { SqlCommand command; StringBuilder sql; sql = new StringBuilder(); sql.Append("CREATE TABLE "); sql.Append(OnFormatTableName(Query.Table)); sql.Append(" ("); sql.Append(String.Join(", ", Query.Columns.Select(item => $"{OnFormatColumnName(item,false)} {GetTypeName(item)} {(item.IsNullable ? "NULL" : "NOT NULL")}{GetConstraint(item)}"))); sql.Append(")"); command = new SqlCommand(sql.ToString()); return(command); }
internal void SetupTable() { Table = Db.DatabaseTools.GetCreateTableBuilder(TableName,IfTableExists.Throw); Table.Columns .Add("Id", DbType.Int32, isNullable: false, autoIncrement: true).AsPrimaryKey("pk_test") .Add("Name", DbType.String, size: "50").AsUnique("uk_name")//.WithCheck("Name like '%a'","ck_name")+ .Add("Uid", DbType.Guid) .Add("Int32", DbType.Int32) .Add("Int64", DbType.Int64) .Add("Int16", DbType.Int16) .Add("UInt16", DbType.UInt16) .Add("UInt32", DbType.UInt32) .Add("UInt64", DbType.UInt64) .Add("Single", DbType.Single) .Add("Double", DbType.Double) .Add("DateTime", DbType.DateTime) .Add("DateTimeOffset", DbType.DateTimeOffset); Table.TableOptionsFor(DbEngine.MySql, MySqlOptions.Table.AutoIncrementValueIs(1),MySqlOptions.Table.EngineIs(TableEngineType.InnoDb)); Table.Constraints.AddCheck("Name like '%a'", "ck_name") .IfDatabaseIs(DbEngine.PostgreSQL).Redefine("constraint ck_name check(\"Name\" like '%a')"); }
// Constructor public DynamoDbController(ICreateTable createTable) { _createTable = createTable; }
protected abstract DbCommand OnBuildCreateTableCommand(ICreateTable Query);