From 394a1e4d764b65acbde7c01d3212094478d75397 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Wed, 10 Jan 2018 11:09:56 +0800 Subject: [PATCH] Append DataReader Type Mappings --- .../SqlSugar/Entities/ConnectionConfig.cs | 1 + .../Realization/MySql/DbBind/MySqlDbBind.cs | 16 +++++++++++---- .../Realization/Oracle/DbBind/OracleDbBind.cs | 16 +++++++++++---- .../SqlServer/DbBind/SqlServerDbBind.cs | 18 +++++++++++++---- .../Realization/Sqlite/DbBind/SqliteDbBind.cs | 19 +++++++++++++----- .../SqliteTest/DataBase/SqlSugar4xTest.sqlite | Bin 475136 -> 475136 bytes 6 files changed, 53 insertions(+), 17 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/Entities/ConnectionConfig.cs b/Src/Asp.Net/SqlSugar/Entities/ConnectionConfig.cs index d96c3691d..f825f1ed7 100644 --- a/Src/Asp.Net/SqlSugar/Entities/ConnectionConfig.cs +++ b/Src/Asp.Net/SqlSugar/Entities/ConnectionConfig.cs @@ -89,5 +89,6 @@ namespace SqlSugar } public List SqlFuncServices { get; set; } + public List> AppendDataReaderTypeMappings { get; set; } } } diff --git a/Src/Asp.Net/SqlSugar/Realization/MySql/DbBind/MySqlDbBind.cs b/Src/Asp.Net/SqlSugar/Realization/MySql/DbBind/MySqlDbBind.cs index ee18a07cb..283f66886 100644 --- a/Src/Asp.Net/SqlSugar/Realization/MySql/DbBind/MySqlDbBind.cs +++ b/Src/Asp.Net/SqlSugar/Realization/MySql/DbBind/MySqlDbBind.cs @@ -27,8 +27,18 @@ namespace SqlSugar { get { - return new List>() + var extService = this.Context.CurrentConnectionConfig.ConfigureExternalServices; + if (extService != null && extService.AppendDataReaderTypeMappings.HasValue()) { + return extService.AppendDataReaderTypeMappings.Union(MappingTypesConst).ToList(); + } + else + { + return MappingTypesConst; + } + } + } + public static List> MappingTypesConst = new List>(){ new KeyValuePair("int",CSharpDataType.@int), new KeyValuePair("mediumint",CSharpDataType.@int), @@ -71,13 +81,11 @@ namespace SqlSugar new KeyValuePair("varchar",CSharpDataType.Guid), }; - } - } public override List StringThrow { get { - return new List() { "int32", "datetime", "decimal", "double", "byte"}; + return new List() { "int32", "datetime", "decimal", "double", "byte" }; } } } diff --git a/Src/Asp.Net/SqlSugar/Realization/Oracle/DbBind/OracleDbBind.cs b/Src/Asp.Net/SqlSugar/Realization/Oracle/DbBind/OracleDbBind.cs index 78010f067..7d0d62cd3 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Oracle/DbBind/OracleDbBind.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Oracle/DbBind/OracleDbBind.cs @@ -52,7 +52,18 @@ namespace SqlSugar { get { - return new List>() + var extService = this.Context.CurrentConnectionConfig.ConfigureExternalServices; + if (extService != null && extService.AppendDataReaderTypeMappings.HasValue()) + { + return extService.AppendDataReaderTypeMappings.Union(MappingTypesConst).ToList(); + } + else + { + return MappingTypesConst; + } + } + } + public static List> MappingTypesConst = new List>() { new KeyValuePair("int",CSharpDataType.@int), new KeyValuePair("integer",CSharpDataType.@int), @@ -94,9 +105,6 @@ namespace SqlSugar new KeyValuePair("raw",CSharpDataType.byteArray), new KeyValuePair("bfile",CSharpDataType.byteArray), new KeyValuePair("varbinary",CSharpDataType.byteArray) }; - - } - } public override List StringThrow { get diff --git a/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbBind/SqlServerDbBind.cs b/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbBind/SqlServerDbBind.cs index cf926acf1..60716cf94 100644 --- a/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbBind/SqlServerDbBind.cs +++ b/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbBind/SqlServerDbBind.cs @@ -10,7 +10,18 @@ namespace SqlSugar { get { - return new List>() + var extService = this.Context.CurrentConnectionConfig.ConfigureExternalServices; + if (extService != null&& extService.AppendDataReaderTypeMappings.HasValue()) + { + return extService.AppendDataReaderTypeMappings.Union(MappingTypesConst).ToList(); + } + else + { + return MappingTypesConst; + } + } + } + public static List> MappingTypesConst = new List>() { new KeyValuePair("int",CSharpDataType.@int), new KeyValuePair("varchar",CSharpDataType.@string), @@ -45,7 +56,6 @@ namespace SqlSugar new KeyValuePair("varbinary",CSharpDataType.byteArray), new KeyValuePair("datetimeoffset", CSharpDataType.DateTimeOffset), new KeyValuePair("datetimeoffset", CSharpDataType.DateTime)}; - } - } - } + }; + } diff --git a/Src/Asp.Net/SqlSugar/Realization/Sqlite/DbBind/SqliteDbBind.cs b/Src/Asp.Net/SqlSugar/Realization/Sqlite/DbBind/SqliteDbBind.cs index f84f93d7f..031db8654 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Sqlite/DbBind/SqliteDbBind.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Sqlite/DbBind/SqliteDbBind.cs @@ -22,12 +22,23 @@ namespace SqlSugar csharpTypeName = "bool"; var mappings = this.MappingTypes.Where(it => it.Value.ToString().Equals(csharpTypeName, StringComparison.CurrentCultureIgnoreCase)); return mappings.HasValue() ? mappings.First().Key : "varchar"; - } + } public override List> MappingTypes { get { - return new List>() + var extService = this.Context.CurrentConnectionConfig.ConfigureExternalServices; + if (extService != null && extService.AppendDataReaderTypeMappings.HasValue()) + { + return extService.AppendDataReaderTypeMappings.Union(MappingTypesConst).ToList(); + } + else + { + return MappingTypesConst; + } + } + } + public static List> MappingTypesConst = new List>() { new KeyValuePair("integer",CSharpDataType.@int), @@ -87,9 +98,7 @@ namespace SqlSugar new KeyValuePair("varchar",CSharpDataType.Guid), new KeyValuePair("guid",CSharpDataType.Guid) - }; - } - } + }; public override List StringThrow { get diff --git a/Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest.sqlite b/Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest.sqlite index 6a4bceadc109d31dfd30b9ff50237a003995b18f..1922c2b1bab910d2a7085adb26c512c4619d5151 100644 GIT binary patch delta 40502 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 Y{;dD=jTe9O>od_y_x!svfAx$11KupNPyhe`