예제 #1
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="memberInfo">映射成员信息</param>
        /// <param name="fieldName">数据库字段名</param>
        /// <param name="dbOpType">数据库字段操作类型</param>
        public DBColumn(MemberInfo memberInfo, string fieldName, string dbType, bool notNull, string defaultVal, DBColumnOpType dbOpType = DBFrame.DBColumnOpType.All)
        {
            _objHelper = new ObjectHelper();

            if (memberInfo is PropertyInfo)
            {
                PropertyInfo = (PropertyInfo)memberInfo;
                Type         = PropertyInfo.PropertyType;
            }
            else if (memberInfo is FieldInfo)
            {
                FieldInfo = (FieldInfo)memberInfo;
                Type      = FieldInfo.FieldType;
            }
            else
            {
                throw new MyDBException("在构造DBColumn[" + memberInfo.Name + "]时,传入了无效的类型!");
            }

            if (Type.IsGenericType && Type.GetGenericTypeDefinition() == typeof(Nullable <>))
            {
                Type = Nullable.GetUnderlyingType(Type);
            }

            GetHandler = _objHelper.CreateDegGetValue(memberInfo.DeclaringType, memberInfo.Name);
            SetHandler = _objHelper.CreateDegSetValue(memberInfo.DeclaringType, memberInfo.Name);

            ColumnType     = GetColumnType(Type);
            Name           = fieldName;
            AliasName      = memberInfo.Name;
            DBColumnOpType = dbOpType;
            this.DataType  = dbType;
            this.NotNull   = notNull;
            this.Default   = defaultVal;
        }
예제 #2
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="fieldName">数据库字段名称</param>
 /// <param name="isIdentity">字段操作类型</param>
 public DBColumnAttribute(string fieldName, DBColumnOpType dbColOpType)
     : this(fieldName, string.Empty, string.Empty, false)
 {
 }