/// <summary> /// 2つの列定義マップの共有を作成する /// </summary> /// <param name="a">列定義マップ a</param> /// <param name="b">列定義マップ b</param> /// <returns>列定義マップ</returns> public static ColumnMap Union(ColumnMap a, ColumnMap b) { var result = new ColumnMap(); for (int i = 0, n = a.Count; i < n; i++) { result.Include(a[i]); } for (int i = 0, n = b.Count; i < n; i++) { result.Include(b[i]); } return(result); }
/// <summary> /// エイリアス用にクローンを作成する /// </summary> /// <returns>クローン</returns> public TableDef <TColumns> AliasedClone() { var c = this.MemberwiseClone() as TableDef <TColumns>; ColumnMap map; TColumns columns; c.ColumnMap = map = new ColumnMap(); c.Columns = columns = TypeWiseCache <TColumns> .Creator(); foreach (var column in this.ColumnMap) { map.Add(column.Clone(columns, c)); } return(c); }
/// <summary> /// コンストラクタ、DB接続環境とテーブル名を指定して初期化する /// </summary> /// <param name="environment">DB接続環境</param> /// <param name="name">DB上のテーブル名</param> public TableDef(DbEnvironment environment, string name) { this.Environment = environment; this.Name = name; this.ColumnMap = new ColumnMap(); // プロパティと列をバインドする Mediator.Table = this; try { this.Columns = TypeWiseCache <TColumns> .Creator(); // 全プロパティを一度呼び出す事でバインドされる AllColumnsBinder(this.Columns); } finally { Mediator.Table = null; } }
public Visitor(ElementCode exprInProgress, ColumnMap colDefDic = null) { _ExprInProgress = exprInProgress; _ColDefDic = colDefDic; }