TDengineDbBind.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. using SqlSugar;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. namespace SqlSugar.BzTDengineCore
  6. {
  7. public class TDengineDbBind : DbBindProvider
  8. {
  9. public override string GetDbTypeName(string csharpTypeName)
  10. {
  11. if (csharpTypeName == UtilConstants.ByteArrayType.Name)
  12. return "bytea";
  13. if (csharpTypeName.ToLower() == "int32")
  14. csharpTypeName = "int";
  15. if (csharpTypeName.ToLower() == "int16")
  16. csharpTypeName = "short";
  17. if (csharpTypeName.ToLower() == "int64")
  18. csharpTypeName = "long";
  19. if (csharpTypeName.ToLower().IsIn("boolean", "bool"))
  20. csharpTypeName = "bool";
  21. if (csharpTypeName == "DateTimeOffset")
  22. csharpTypeName = "DateTime";
  23. var mappings = MappingTypes.Where(it => it.Value.ToString().Equals(csharpTypeName, StringComparison.CurrentCultureIgnoreCase)).ToList();
  24. if (mappings != null && mappings.Count > 0)
  25. return mappings.First().Key;
  26. else
  27. return "varchar";
  28. }
  29. public override string GetPropertyTypeName(string dbTypeName)
  30. {
  31. if (dbTypeName.ToLower() == "int32")
  32. {
  33. dbTypeName = "int";
  34. }
  35. else if (dbTypeName.ToLower() == "int16")
  36. {
  37. dbTypeName = "short";
  38. }
  39. else if (dbTypeName.ToLower() == "int64")
  40. {
  41. dbTypeName = "long";
  42. }
  43. else if (dbTypeName.ToLower() == "string")
  44. {
  45. dbTypeName = "string";
  46. }
  47. else if (dbTypeName.ToLower() == "boolean")
  48. {
  49. dbTypeName = "bool";
  50. }
  51. else if (dbTypeName.ToLower() == "sbyte")
  52. {
  53. dbTypeName = "sbyte";
  54. }
  55. else if (dbTypeName.ToLower() == "double")
  56. {
  57. dbTypeName = "double";
  58. }
  59. return dbTypeName;
  60. }
  61. public override List<KeyValuePair<string, CSharpDataType>> MappingTypes
  62. {
  63. get
  64. {
  65. var extService = Context.CurrentConnectionConfig.ConfigureExternalServices;
  66. if (extService != null && extService.AppendDataReaderTypeMappings.HasValue())
  67. {
  68. return extService.AppendDataReaderTypeMappings.Union(MappingTypesConst).ToList();
  69. }
  70. else
  71. {
  72. return MappingTypesConst;
  73. }
  74. }
  75. }
  76. public static List<KeyValuePair<string, CSharpDataType>> MappingTypesConst = new List<KeyValuePair<string, CSharpDataType>>(){
  77. new KeyValuePair<string, CSharpDataType>("BOOL",CSharpDataType.@bool),
  78. new KeyValuePair<string, CSharpDataType>("TINYINT",CSharpDataType.@byte),
  79. new KeyValuePair<string, CSharpDataType>("SMALLINT",CSharpDataType.@short),
  80. new KeyValuePair<string, CSharpDataType>("INT",CSharpDataType.@int),
  81. new KeyValuePair<string, CSharpDataType>("BIGINT",CSharpDataType.@long),
  82. new KeyValuePair<string, CSharpDataType>("TINYINT UNSIGNED",CSharpDataType.@byte),
  83. new KeyValuePair<string, CSharpDataType>("SMALLINT UNSIGNED",CSharpDataType.@short),
  84. new KeyValuePair<string, CSharpDataType>("INT UNSIGNED",CSharpDataType.@int),
  85. new KeyValuePair<string, CSharpDataType>("BIGINT UNSIGNED",CSharpDataType.@long),
  86. new KeyValuePair<string, CSharpDataType>("FLOAT",CSharpDataType.Single),
  87. new KeyValuePair<string, CSharpDataType>("DOUBLE",CSharpDataType.@double),
  88. new KeyValuePair<string, CSharpDataType>("float8",CSharpDataType.@double),
  89. new KeyValuePair<string, CSharpDataType>("BINARY",CSharpDataType.@string),
  90. new KeyValuePair<string, CSharpDataType>("TIMESTAMP",CSharpDataType.DateTime),
  91. new KeyValuePair<string, CSharpDataType>("NCHAR",CSharpDataType.@string),
  92. new KeyValuePair<string, CSharpDataType>("JSON",CSharpDataType.@string)
  93. };
  94. public override List<string> StringThrow
  95. {
  96. get
  97. {
  98. return new List<string>() { "int32", "datetime", "decimal", "double", "byte" };
  99. }
  100. }
  101. }
  102. }