Example #1
0
     myDevicePathName = devicePathName(memberIndex)
 Else
Example #2
0
        /// <summary>
        /// 获取数据库成员信息
        /// </summary>
        /// <param name="member">成员信息</param>
        /// <returns>数据库成员信息</returns>
        internal static dataMember Get(memberIndex member)
        {
            dataMember value = member.GetAttribute <dataMember>(true, false);

            if (value == null || value.DataType == null)
            {
                if (member.Type.IsEnum)
                {
                    if (value == null)
                    {
                        value = new dataMember();
                    }
                    value.DataType = System.Enum.GetUnderlyingType(member.Type);
                }
                else
                {
                    dataMember sqlMember = fastCSharp.code.typeAttribute.GetAttribute <dataMember>(member.Type, false, false);
                    if (sqlMember != null && sqlMember.DataType != null)
                    {
                        if (value == null)
                        {
                            value = new dataMember();
                        }
                        value.DataType = sqlMember.DataType;
                        if (sqlMember.DataType.nullableType() != null)
                        {
                            value.IsNull = true;
                        }
                    }
                }
            }
            else if (member.Type.IsEnum)
            {
                Type enumType = System.Enum.GetUnderlyingType(member.Type);
                if (enumType != value.DataType)
                {
                    value.EnumType = enumType;
                }
            }
            if (value == null)
            {
                Type nullableType = member.Type.nullableType();
                if (nullableType == null)
                {
                    if (fastCSharp.code.typeAttribute.GetAttribute <sqlColumn>(member.Type, false, false) == null)
                    {
                        Type dataType = member.Type.formCSharpType().toCSharpType();
                        if (dataType != member.Type)
                        {
                            value          = new dataMember();
                            value.DataType = dataType;
                        }
                    }
                }
                else
                {
                    value        = new dataMember();
                    value.IsNull = true;
                    Type dataType = nullableType.formCSharpType().toCSharpType();
                    if (dataType != nullableType)
                    {
                        value.DataType = dataType.toNullableType();
                    }
                }
            }
            return(value ?? DefaultDataMember);
        }