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