/// <summary> /// 获取数据库成员信息 /// </summary> /// <param name="member">成员信息</param> /// <returns>数据库成员信息</returns> internal static MemberAttribute Get(MemberIndexInfo member) { MemberAttribute value = member.GetAttribute <MemberAttribute>(true); if (value == null || value.DataType == null) { if (member.MemberSystemType.IsEnum) { if (value == null) { value = new MemberAttribute(); } value.DataType = System.Enum.GetUnderlyingType(member.MemberSystemType); } else { MemberAttribute sqlMember = TypeAttribute.GetAttribute <MemberAttribute>(member.MemberSystemType, false); if (sqlMember != null && sqlMember.DataType != null) { if (value == null) { value = new MemberAttribute(); } value.DataType = sqlMember.DataType; if (sqlMember.DataType.nullableType() != null) { value.IsNull = true; } } } } else if (member.MemberSystemType.IsEnum) { Type enumType = System.Enum.GetUnderlyingType(member.MemberSystemType); if (enumType != value.DataType) { value.EnumType = enumType; } } if (value == null) { Type nullableType = member.MemberSystemType.nullableType(); if (nullableType == null) { if (TypeAttribute.GetAttribute <ColumnAttribute>(member.MemberSystemType, false) == null) { Type dataType = member.MemberSystemType.toDataType(); if (dataType != member.MemberSystemType) { value = new MemberAttribute(); value.DataType = dataType; } } } else { value = new MemberAttribute(); value.IsNull = true; Type dataType = nullableType.toDataType(); if (dataType != nullableType) { value.DataType = dataType.toNullableType(); } } } return(value ?? DefaultDataMember); }
/// <summary> /// 成员信息 /// </summary> /// <param name="member">成员信息</param> private MemberIndex(MemberIndexInfo member) : base(member) { MemberType = member.MemberSystemType; MemberName = Member.Name; }