Beispiel #1
0
 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();
 }
Beispiel #2
0
 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();
 }
Beispiel #3
0
 /// <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;
     }
 }
Beispiel #4
0
 /// <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;
     }
 }
Beispiel #5
0
 private void OnColumnSortChanged(IColumnDef col)
 {
     InvokeAsync(async() => await Process.OnReadDataAsync(Page, Config.PageSize));
 }