Пример #1
0
 /// <summary>
 /// プロパティに結びつく列定義として初期化する
 /// </summary>
 /// <param name="environment">この列定義がベースとするDB接続環境</param>
 /// <param name="instance">プロパティを直接保持するオブジェクト</param>
 /// <param name="property">プロパティ情報</param>
 /// <param name="table">この列が所属する<see cref="ITable"/></param>
 /// <param name="name">DB上の列名</param>
 /// <param name="dbType">DB上の型</param>
 /// <param name="flags">列定義オプションフラグ</param>
 /// <param name="source">列を生成する元となった式</param>
 public Column(DbEnvironment environment, object instance, PropertyInfo property, ITable table, string name, IDbType dbType, ColumnFlags flags = 0, ElementCode source = null)
 {
     this.Environment = environment;
     this.Instance    = instance;
     this.Property    = property;
     this.Table       = table;
     this.Name        = name;
     this.DbType      = dbType;
     this.Flags       = flags;
     this.Source      = source;
 }
Пример #2
0
 /// <summary>
 /// データベースに変化分を適用する
 /// </summary>
 /// <param name="context">コマンド生成先のバッファ</param>
 /// <param name="databaseDelta">データベース変化分</param>
 public abstract void ApplyDatabaseDelta(ElementCode context, IDatabaseDelta databaseDelta);
Пример #3
0
 /// <summary>
 /// SQL文を生成する
 /// </summary>
 /// <param name="context">生成先のコンテキスト</param>
 public void ToElementCode(ElementCode context)
 {
     context.Concat(this.Name);
 }
Пример #4
0
        /// <summary>
        /// プロパティに列定義をバインドして取得する、バインド済みなら取得のみ行われる
        /// </summary>
        /// <param name="propertyName">プロパティ名</param>
        /// <param name="name">DB上での列名</param>
        /// <param name="dbType">DB上での型</param>
        /// <param name="flags">列に対するオプションフラグ</param>
        /// <param name="source">列を生成する基となった式</param>
        /// <returns>列定義</returns>
        public Column BindColumn(string propertyName, string name, IDbType dbType, ColumnFlags flags = 0, ElementCode source = null)
        {
            var column = this.ColumnMap.TryGetByPropertyName(propertyName);

            if (column == null)
            {
                this.ColumnMap.Add(column = new Column(this.Environment, this.Columns, typeof(TColumns).GetProperty(propertyName), this, name, dbType, flags, source));
            }
            return(column);
        }
Пример #5
0
 public Visitor(ElementCode exprInProgress, ColumnMap colDefDic = null)
 {
     _ExprInProgress = exprInProgress;
     _ColDefDic      = colDefDic;
 }
Пример #6
0
 public TypeWise(ElementCode editableExpr) => _EditableExpr = editableExpr;