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)); }
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)); }
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)); }