Exemplo n.º 1
0
        private int ExecuteCommand(SqlConnection connection, ICreateTable createTable)
        {
            var sql     = createTable.CreateTable();
            var command = new SqlCommand(sql, connection);
            var result  = command.ExecuteNonQuery();

            return(result);
        }
Exemplo n.º 2
0
 public DynamoDbController(ICreateTable createTable, IPutItem putItem, IGetItem getItem, IUpdateItem updateItem, IDeleteTable deleteTable)
 {
     _createTable = createTable;
     _putItem     = putItem;
     _getItem     = getItem;
     _updateItem  = updateItem;
     _deleteTable = deleteTable;
 }
Exemplo n.º 3
0
 public ConsoleApp(
     IOptions <Config> appSettings,
     IImportService import,
     ICreateTable createTable)
 {
     _createTable = createTable;
     _import      = import;
     _appSettings = appSettings?.Value ?? throw new ArgumentNullException(nameof(appSettings));
 }
Exemplo n.º 4
0
 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;
 }
Exemplo n.º 5
0
 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')");
 }
Exemplo n.º 6
0
        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();
                }
            }
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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')");
        }
Exemplo n.º 9
0
 // Constructor
 public DynamoDbController(ICreateTable createTable)
 {
     _createTable = createTable;
 }
Exemplo n.º 10
0
 protected abstract DbCommand OnBuildCreateTableCommand(ICreateTable Query);