示例#1
0
        /// <summary>
        /// 成员信息转换为数据列
        /// </summary>
        /// <param name="type">成员类型</param>
        /// <param name="memberAttribute">SQL成员信息</param>
        /// <returns>数据列</returns>
        internal override Column GetColumn(Type type, MemberAttribute memberAttribute)
        {
            SqlDbType sqlType    = SqlDbType.NVarChar;
            int       size       = memberAttribute.MaxStringLength;
            Type      memberType = memberAttribute.DataType ?? type;

            if (memberType == typeof(string))
            {
                if (size > 0)
                {
                    sqlType = SqlDbType.NVarChar;
                }
                else
                {
                    sqlType = SqlDbType.NText;
                    size    = int.MaxValue;
                }
            }
            else
            {
                sqlType = memberType.formCSharpType(memberAttribute);
                size    = sqlType.getSize(memberAttribute);
            }
            return(new Column
            {
                DbType = sqlType,
                Size = size,
                IsNull = memberAttribute.IsDefaultMember && memberType != typeof(string) ? type.isNull() : memberAttribute.IsNull,
                Remark = memberAttribute.Remark,
                DefaultValue = memberAttribute.DefaultValue,
                UpdateValue = memberAttribute.UpdateValue
            });
        }
示例#2
0
        /// <summary>
        /// 成员信息转换为数据列
        /// </summary>
        /// <param name="type">成员类型</param>
        /// <param name="sqlMember">SQL成员信息</param>
        /// <returns>数据列</returns>
        internal override column getColumn(Type type, dataMember sqlMember)
        {
            SqlDbType  sqlType    = SqlDbType.NVarChar;
            int        size       = sqlMember.MaxStringLength;
            memberType memberType = sqlMember.DataType != null ? sqlMember.DataType : type;

            if (memberType.IsString)
            {
                if (size > 0)
                {
                    sqlType = SqlDbType.NVarChar;
                }
                else
                {
                    sqlType = SqlDbType.NText;
                    size    = int.MaxValue;
                }
            }
            else
            {
                sqlType = memberType.Type.formCSharpType();
                size    = sqlType.getSize();
            }
            return(new column
            {
                DbType = sqlType,
                Size = size,
                IsNull = (sqlMember.IsDefaultMember && !memberType.IsString ? ((memberType)type).IsNull : sqlMember.IsNull),
                DefaultValue = sqlMember.DefaultValue,
                UpdateValue = sqlMember.UpdateValue
            });
        }
示例#3
0
        /// <summary>
        /// 成员信息转换为数据列
        /// </summary>
        /// <param name="type">成员类型</param>
        /// <param name="memberAttribute">SQL成员信息</param>
        /// <returns>数据列</returns>
        internal override Column GetColumn(Type type, MemberAttribute memberAttribute)
        {
            SqlDbType sqlType    = SqlDbType.NVarChar;
            int       size       = maxStringSize;
            Type      memberType = memberAttribute.DataType ?? type;

            if (memberType == typeof(string))
            {
                if (memberAttribute.MaxStringLength > 0 && memberAttribute.MaxStringLength <= maxStringSize)
                {
                    if (memberAttribute.IsFixedLength)
                    {
                        sqlType = memberAttribute.IsAscii ? SqlDbType.Char : SqlDbType.NChar;
                    }
                    else
                    {
                        sqlType = memberAttribute.IsAscii ? SqlDbType.VarChar : SqlDbType.NVarChar;
                    }
                    size = memberAttribute.MaxStringLength <= maxStringSize ? memberAttribute.MaxStringLength : maxStringSize;
                }
                else if (!memberAttribute.IsFixedLength && memberAttribute.MaxStringLength == -1)
                {
                    sqlType = memberAttribute.IsAscii ? SqlDbType.VarChar : SqlDbType.NVarChar;
                    size    = memberAttribute.MaxStringLength <= maxStringSize ? memberAttribute.MaxStringLength : maxStringSize;
                }
                else
                {
                    sqlType = memberAttribute.IsAscii ? SqlDbType.Text : SqlDbType.NText;
                    if (size <= 0)
                    {
                        size = int.MaxValue;
                    }
                }
            }
            else
            {
                sqlType = memberType.formCSharpType();
                size    = sqlType.getSize(memberAttribute);
            }
            return(new Column
            {
                DbType = sqlType,
                Size = size,
                IsNull = memberAttribute.IsDefaultMember && memberType != typeof(string) ? type.isNull() : memberAttribute.IsNull,
                Remark = memberAttribute.Remark,
                DefaultValue = memberAttribute.DefaultValue,
                UpdateValue = memberAttribute.UpdateValue
            });
        }