/// <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); }
/// <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); }