Пример #1
0
        /**********************************************************************************************************/

        internal DbType GetType(ParamTypeEnum colType, Type realType, Context dc)
        {
            if (realType == null)
            {
                return(DbType.AnsiString);
            }
            else if (XConfig.DbTypeFuncs.TryGetValue(realType, out var func))
            {
                return(func(dc, colType));
            }
            else if (realType.IsEnum)
            {
                return(GetType(colType, Enum.GetUnderlyingType(realType), dc));
            }
            else if (realType.FullName == XConfig.CSTC.LinqBinary)
            {
                return(DbType.Binary);
            }
            else if (XConfig.CSTC.IEnumerableT.IsAssignableFrom(realType))
            {
                return((DbType)(-1));
            }
            else
            {
                throw XConfig.EC.Exception(XConfig.EC._032, $"不支持的字段参数类型:[[{realType}]]!");
            }
        }
Пример #2
0
        DbType IDbTypeConfig.GuidProc(Context dc, ParamTypeEnum colType)
        {
            switch (dc.DB)
            {
            case DbEnum.MySQL:
                return(MySql.GuidProc(dc, colType));

            default:
                return(DbType.Guid);
            }
        }
Пример #3
0
 DbType IDbTypeConfig.IntProc(Context dc, ParamTypeEnum colType)
 {
     if (colType == ParamTypeEnum.Int_MySQL_SqlServer)
     {
         return(DbType.Int32);
     }
     else
     {
         return(DbType.Int32);
     }
 }
Пример #4
0
 DbType IDbTypeConfig.DateTimeProc(Context dc, ParamTypeEnum colType)
 {
     if (colType == ParamTypeEnum.DateTime_MySQL_SqlServer)
     {
         return(DbType.AnsiString);
     }
     else
     {
         return(DbType.DateTime2);
     }
 }
Пример #5
0
        DbType IDbTypeConfig.ByteArrayProc(Context dc, ParamTypeEnum colType)
        {
            switch (dc.DB)
            {
            case DbEnum.MySQL:
                return(MySql.ByteArrayProc(dc, colType));

            default:
                return(DbType.Binary);
            }
        }
Пример #6
0
 DbType IDbTypeConfig.UshortProc(Context dc, ParamTypeEnum colType)
 {
     if (colType == ParamTypeEnum.SmallInt_MySQL_SqlServer)
     {
         return(DbType.UInt16);
     }
     else
     {
         return(DbType.UInt16);
     }
 }
Пример #7
0
 DbType IDbTypeConfig.TimeSpanProc(Context dc, ParamTypeEnum colType)
 {
     if (colType == ParamTypeEnum.Time_MySQL_SqlServer)
     {
         return(DbType.Time);
     }
     else
     {
         return(DbType.Time);
     }
 }
Пример #8
0
 DbType IDbTypeConfig.SbyteProc(Context dc, ParamTypeEnum colType)
 {
     if (colType == ParamTypeEnum.TinyInt_MySQL_SqlServer)
     {
         return(DbType.Int16);
     }
     else
     {
         return(DbType.SByte);
     }
 }
Пример #9
0
 DbType IDbTypeConfig.UlongProc(Context dc, ParamTypeEnum colType)
 {
     if (colType == ParamTypeEnum.BigInt_MySQL_SqlServer)
     {
         return(DbType.UInt64);
     }
     else
     {
         return(DbType.UInt64);
     }
 }
Пример #10
0
 DbType IDbTypeConfig.FloatProc(Context dc, ParamTypeEnum colType)
 {
     if (colType == ParamTypeEnum.Float_MySQL_SqlServer)
     {
         return(DbType.Single);
     }
     else
     {
         return(DbType.Single);
     }
 }
Пример #11
0
 DbType IDbTypeConfig.DoubleProc(Context dc, ParamTypeEnum colType)
 {
     if (colType == ParamTypeEnum.Double_MySQL)
     {
         return(DbType.Double);
     }
     else
     {
         return(DbType.Double);
     }
 }
Пример #12
0
 DbType IDbTypeConfig.CharProc(Context dc, ParamTypeEnum colType)
 {
     if (colType == ParamTypeEnum.VarChar_MySQL_SqlServer)
     {
         return(DbType.AnsiString);
     }
     else
     {
         return(DbType.AnsiString);
     }
 }
Пример #13
0
 DbType IDbTypeConfig.ListStringProc(Context dc, ParamTypeEnum colType)
 {
     if (colType == ParamTypeEnum.Set_MySQL)
     {
         return(DbType.String);
     }
     else
     {
         return(DbType.AnsiString);
     }
 }
Пример #14
0
 DbType IDbTypeConfig.DecimalProc(Context dc, ParamTypeEnum colType)
 {
     if (colType == ParamTypeEnum.Decimal_MySQL_SqlServer)
     {
         return(DbType.Decimal);
     }
     else
     {
         return(DbType.Decimal);
     }
 }
Пример #15
0
        DbType IDbTypeConfig.UshortProc(Context dc, ParamTypeEnum colType)
        {
            switch (dc.DB)
            {
            case DbEnum.MySQL:
                return(MySql.UshortProc(dc, colType));

            default:
                return(DbType.UInt16);
            }
        }
Пример #16
0
        DbType IDbTypeConfig.DateTimeOffsetProc(Context dc, ParamTypeEnum colType)
        {
            switch (dc.DB)
            {
            case DbEnum.MySQL:
                return(MySql.DateTimeOffsetProc(dc, colType));

            default:
                return(DbType.DateTimeOffset);
            }
        }
Пример #17
0
 DbType IDbTypeConfig.GuidProc(Context dc, ParamTypeEnum colType)
 {
     if (colType == ParamTypeEnum.Char_MySQL_SqlServer)
     {
         return(DbType.AnsiStringFixedLength);
     }
     else
     {
         return(DbType.Guid);
     }
 }
Пример #18
0
        DbType IDbTypeConfig.ListStringProc(Context dc, ParamTypeEnum colType)
        {
            switch (dc.DB)
            {
            case DbEnum.MySQL:
                return(MySql.ListStringProc(dc, colType));

            default:
                return(DbType.String);
            }
        }
Пример #19
0
 DbType IDbTypeConfig.BoolProc(Context dc, ParamTypeEnum colType)
 {
     if (colType == ParamTypeEnum.Bit_MySQL_SqlServer)
     {
         return(DbType.Int16);
     }
     else
     {
         return(DbType.Boolean);
     }
 }
Пример #20
0
        DbType IDbTypeConfig.ListStringProc(Context dc, ParamTypeEnum colType)
        {
            switch (dc.DB)
            {
            case DbEnum.MySQL:
                return(MySql.ListStringProc(dc, colType));

            case DbEnum.SQLServer:
                throw XConfig.EC.Exception(XConfig.EC._091, "sql server 不支持 set 类型的列!");

            default:
                return(DbType.String);
            }
        }
Пример #21
0
        DbType IDbTypeConfig.BoolProc(Context dc, ParamTypeEnum colType)
        {
            switch (dc.DB)
            {
            case DbEnum.MySQL:
                return(MySql.BoolProc(dc, colType));

            case DbEnum.SQLServer:
                return(SqlServer.BoolProc(dc, colType));

            default:
                return(DbType.Boolean);
            }
        }
Пример #22
0
        DbType IDbTypeConfig.FloatProc(Context dc, ParamTypeEnum colType)
        {
            switch (dc.DB)
            {
            case DbEnum.MySQL:
                return(MySql.FloatProc(dc, colType));

            case DbEnum.SQLServer:
                return(SqlServer.FloatProc(dc, colType));

            default:
                return(DbType.Single);
            }
        }
Пример #23
0
        DbType IDbTypeConfig.UlongProc(Context dc, ParamTypeEnum colType)
        {
            switch (dc.DB)
            {
            case DbEnum.MySQL:
                return(MySql.UlongProc(dc, colType));

            case DbEnum.SQLServer:
                return(SqlServer.UlongProc(dc, colType));

            default:
                return(DbType.UInt64);
            }
        }
Пример #24
0
        DbType IDbTypeConfig.StringProc(Context dc, ParamTypeEnum colType)
        {
            switch (dc.DB)
            {
            case DbEnum.MySQL:
                return(MySql.StringProc(dc, colType));

            case DbEnum.SQLServer:
                return(SqlServer.StringProc(dc, colType));

            default:
                return(DbType.AnsiString);
            }
        }
Пример #25
0
 DbType IDbTypeConfig.ByteArrayProc(Context dc, ParamTypeEnum colType)
 {
     return(DbType.Binary);
 }
Пример #26
0
 DbType IDbTypeConfig.CharProc(Context dc, ParamTypeEnum colType)
 {
     return(DbType.StringFixedLength);
 }
Пример #27
0
 DbType IDbTypeConfig.DoubleProc(Context dc, ParamTypeEnum colType)
 {
     return(DbType.Double);
 }
Пример #28
0
 DbType IDbTypeConfig.FloatProc(Context dc, ParamTypeEnum colType)
 {
     return(DbType.Single);
 }
Пример #29
0
 DbType IDbTypeConfig.ShortProc(Context dc, ParamTypeEnum colType)
 {
     return(DbType.Int16);
 }
Пример #30
0
 DbType IDbTypeConfig.SbyteProc(Context dc, ParamTypeEnum colType)
 {
     return(DbType.SByte);
 }