using System; using Microsoft.EntityFrameworkCore.Migrations.Operations; using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders; namespace Oqtane.Migrations.Extensions { public static class ColumnsBuilderExtensions { public static OperationBuilder AddAutoIncrementColumn(this ColumnsBuilder table, string name) { return table.Column(name: name, nullable: false) .Annotation("SqlServer:Identity", "1, 1") .Annotation("Sqlite:Autoincrement", true) .Annotation("MySql:ValueGeneratedOnAdd", true); } public static OperationBuilder AddBooleanColumn(this ColumnsBuilder table, string name, bool nullable = false) { return table.Column(name: name, nullable: nullable); } public static OperationBuilder AddDateTimeColumn(this ColumnsBuilder table, string name, bool nullable = false) { return table.Column(name: name, nullable: nullable); } public static OperationBuilder AddDateTimeOffsetColumn(this ColumnsBuilder table, string name, bool nullable = false) { return table.Column(name: name, nullable: nullable); } public static OperationBuilder AddIntegerColumn(this ColumnsBuilder table, string name, bool nullable = false) { return table.Column(name: name, nullable: nullable); } public static OperationBuilder AddMaxStringColumn(this ColumnsBuilder table, string name, bool nullable = false) { return table.Column(name: name, nullable: nullable); } public static OperationBuilder AddStringColumn(this ColumnsBuilder table, string name, int length, bool nullable = false) { return table.Column(name: name, maxLength: length, nullable: nullable); } } }