public static OperationBuilderSurface <CreatePrimaryKeyConstraintOperation> CreatePrimaryKey(
            IMigrationBuilder builder, string name, string table, IEnumerable <ConstraintColumnDefinition> columns,
            string schema = null, string catalog = null)
        {
            var op = new CreatePrimaryKeyConstraintOperation
            {
                Name    = new SubObjectName(catalog, schema, table, name),
                Columns = columns.ToList()
            };

            builder.AddOperation(op);
            return(new OperationBuilderSurface <CreatePrimaryKeyConstraintOperation>(op));
        }
Ejemplo n.º 2
0
        public OperationBuilderSurface <CreatePrimaryKeyConstraintOperation> PrimaryKey(string name,
                                                                                        Func <TColumns, ColumnDefinition> column, SortDirection direction = SortDirection.Asc)
        {
            var col = column(_instance);
            var res = new CreatePrimaryKeyConstraintOperation
            {
                Name    = _operation.Name.MakeSubObjectName(name),
                Columns = new List <ConstraintColumnDefinition> {
                    new ConstraintColumnDefinition {
                        Column = col.Name.Name, Direction = direction
                    }
                }
            };

            _operation.Constraints.Add(res);
            return(new OperationBuilderSurface <CreatePrimaryKeyConstraintOperation>(res));
        }
Ejemplo n.º 3
0
        PrimaryKey <TKeyColumns>(string name, Func <TColumns, TKeyColumns> columns)
        {
            var keyCols = columns(_instance);
            var cols    = typeof(TKeyColumns).GetRuntimeProperties()
                          .Where(p => p.CanRead)
                          .Select(p =>
                                  new
            {
                Name  = p.Name,
                Value = p.GetValue(keyCols)
            })
                          .Where(x => x.Value != null)
                          .Select(x =>
            {
                if (x.Value is ConstraintColumnDefinition definition)
                {
                    definition.Column = x.Name;
                    return(definition);
                }
                else if (x.Value is ColumnDefinition def)
                {
                    return(new ConstraintColumnDefinition
                    {
                        Column = def.Name.Name,
                    });
                }
                else
                {
                    return(null);
                }
            }).ToList();

            var res = new CreatePrimaryKeyConstraintOperation
            {
                Name    = _operation.Name.MakeSubObjectName(name),
                Columns = cols
            };

            _operation.Constraints.Add(res);
            return(new OperationBuilderSurface <CreatePrimaryKeyConstraintOperation>(res));
        }