static void Drop(ElementCode context, string tableName, IColumnDef column) { if (column == null) { return; } context.Add(SqlKeyword.AlterTable, SqlKeyword.IfExists); context.Concat(tableName); context.Add(SqlKeyword.DropColumn, SqlKeyword.IfExists); context.Concat(column.Name); context.Go(); }
static void Add(ElementCode context, string tableName, IColumnDef column, Action <IColumnDef> columnOption) { if (column == null) { return; } context.Add(SqlKeyword.AlterTable, SqlKeyword.IfExists); context.Concat(tableName); context.Add(SqlKeyword.AddColumn); context.Concat(column.Name); if (columnOption != null) { columnOption(column); } context.Go(); }
/// <summary> /// ユニーク制約定義を生成する /// </summary> /// <param name="getters"><see cref="Columns"/>のプロパティを呼び出す処理を指定する</param> /// <returns>インデックス定義</returns> protected virtual IUniqueDef MakeUnique(params Func <object>[] getters) { Mediator.Table = this; Mediator.TableName = this.Name; try { var colDefs = new IColumnDef[getters.Length]; for (int i = 0; i < getters.Length; i++) { colDefs[i] = Mediator.GetFrom(getters[i]); } return(new UniqueDef(colDefs)); } finally { Mediator.Table = null; Mediator.TableName = null; } }
/// <summary> /// インデックス定義を生成する /// </summary> /// <param name="flags">インデックスに設定するフラグ</param> /// <param name="getters"><see cref="Columns"/>のプロパティを呼び出す処理を指定する</param> /// <returns>インデックス定義</returns> protected virtual IIndexDef MakeIndex(IndexFlags flags, params Func <TColumns, object>[] getters) { Mediator.Table = this; Mediator.TableName = this.Name; try { var colDefs = new IColumnDef[getters.Length]; var columns = this.Columns; for (int i = 0; i < getters.Length; i++) { colDefs[i] = Mediator.GetFrom(getters[i], columns); } return(new IndexDef(flags, colDefs)); } finally { Mediator.Table = null; Mediator.TableName = null; } }
private void OnColumnSortChanged(IColumnDef col) { InvokeAsync(async() => await Process.OnReadDataAsync(Page, Config.PageSize)); }