Example #1
0
        /// <summary>
        /// テーブル構造定義クラスから情報(カラム名)一覧を取得します。
        /// ColumnParamのvalueにはnullを設定します。
        /// </summary>
        /// <param name="TTable">テーブル構造定義クラスタイプを設定します。</param>
        /// <returns>カラム情報一覧を返します。</returns>
        /// <param name="bindingAttr">BindingFlagsを設定します。</param>
        public static Utility.ColumnParam GetColumnParam(
            [param: Required] Type classType,
            BindingFlags bindingAttr
            )
        {
            // テーブル構造定義クラスのColumnAttribute一覧を取得します。
            var calist = Utility.AttributeTable
                         .GetColumnAttributeList(classType: classType, bindingAttr: bindingAttr);

            // ColumnParamを生成します。
            var cp = new Utility.ColumnParam();

            // ColumnAttribute一覧で処理します。
            foreach (var ca in calist)
            {
                // カラム名を取得します。
                var columnName = ca.ColumnAttribute.Name;

                // ColumnParamにColumnInfoを追加します。
                cp.Add(columnInfo: new Utility.ColumnInfo()
                {
                    PropertyName = ca.PropertyName,
                    ColumnName   = columnName,
                    Dbtype       = ca.ColumnAttribute.DbType,
                    IsPrimaryKey = ca.ColumnAttribute.IsPrimaryKey,
                    CanBeNull    = ca.ColumnAttribute.CanBeNull,
                    Value        = null
                });
            }
            return(cp);
        }
Example #2
0
        /// <summary>
        /// テーブル構造定義クラスから情報(カラム名・値)一覧を取得します。
        /// DataPlusを使用している場合です。
        /// </summary>
        /// <param name="TTable">テーブル構造定義クラスタイプを設定します。</param>
        /// <param name="tableClassInstance">テーブル構造定義クラスのインスタンスを設定します。</param>
        /// <param name="bindingAttr">BindingFlagsを設定します。</param>
        /// <returns>カラム情報一覧を返します。</returns>
        public static Utility.ColumnParam GetColumnParam(
            [param: Required] Type classType,
            [param: Required] object tableClassInstance,
            BindingFlags bindingAttr
            )
        {
            // null チェック
            if (classType == null)
            {
                throw new ArgumentNullException(MethodBase.GetCurrentMethod().Name + Utility.ConstUtili.ERR_SEPA + nameof(classType));
            }
            if (tableClassInstance == null)
            {
                throw new ArgumentNullException(MethodBase.GetCurrentMethod().Name + Utility.ConstUtili.ERR_SEPA + nameof(tableClassInstance));
            }

            // テーブル構造定義クラスのColumnAttribute一覧を取得します。
            var calist = Utility.AttributeTable
                         .GetColumnAttributeList(classType: classType, bindingAttr: bindingAttr);

            // ColumnParamを生成します。
            var cp = new Utility.ColumnParam();

            // ColumnAttribute一覧で処理します。
            foreach (var ca in calist)
            {
                // カラム名を取得します。
                var columnName = ca.ColumnAttribute.Name;

                // プロパティの値を取得します。
                var value = classType
                            .GetProperty(ca.PropertyName, bindingAttr: bindingAttr)
                            .GetValue(obj: tableClassInstance, index: null);

                // ColumnParamにColumnInfoを追加します。
                cp.Add(columnInfo: new Utility.ColumnInfo()
                {
                    PropertyName = ca.PropertyName,
                    ColumnName   = columnName,
                    Dbtype       = ca.ColumnAttribute.DbType,
                    IsPrimaryKey = ca.ColumnAttribute.IsPrimaryKey,
                    CanBeNull    = ca.ColumnAttribute.CanBeNull,
                    Value        = value
                });
            }
            return(cp);
        }