From 765c1a299d4df9bf373db3662bd2267f896f7df5 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Thu, 18 Jan 2018 15:17:00 +0800 Subject: [PATCH] MySql Sqlite ColumnDataType BUG --- .../Abstract/CodeFirstProvider/CodeFirstProvider.cs | 9 +++++++-- .../Realization/MySql/CodeFirst/MySqlCodeFirst.cs | 3 ++- .../Realization/Sqlite/CodeFirst/SqliteCodeFirst.cs | 3 ++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs index 50e64ec53..2bc7c579a 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs @@ -224,8 +224,14 @@ namespace SqlSugar DefaultValue = item.DefaultValue, ColumnDescription = item.ColumnDescription, Length = item.Length, - DecimalDigits=item.DecimalDigits + DecimalDigits = item.DecimalDigits }; + GetDbType(item, propertyType, result); + return result; + } + + protected virtual void GetDbType(EntityColumnInfo item, Type propertyType, DbColumnInfo result) + { if (!string.IsNullOrEmpty(item.DataType)) { result.DataType = item.DataType; @@ -238,7 +244,6 @@ namespace SqlSugar { result.DataType = this.Context.Ado.DbBind.GetDbTypeName(propertyType.Name); } - return result; } protected virtual bool IsSamgeType(EntityColumnInfo ec, DbColumnInfo dc) diff --git a/Src/Asp.Net/SqlSugar/Realization/MySql/CodeFirst/MySqlCodeFirst.cs b/Src/Asp.Net/SqlSugar/Realization/MySql/CodeFirst/MySqlCodeFirst.cs index f892efb2a..e3ab842cb 100644 --- a/Src/Asp.Net/SqlSugar/Realization/MySql/CodeFirst/MySqlCodeFirst.cs +++ b/Src/Asp.Net/SqlSugar/Realization/MySql/CodeFirst/MySqlCodeFirst.cs @@ -24,9 +24,9 @@ namespace SqlSugar } protected override DbColumnInfo EntityColumnToDbColumn(EntityInfo entityInfo, string tableName, EntityColumnInfo item) { + var propertyType = UtilMethods.GetUnderType(item.PropertyInfo); var result = new DbColumnInfo() { - DataType = this.Context.Ado.DbBind.GetDbTypeName(UtilMethods.GetUnderType(item.PropertyInfo).Name), TableId = entityInfo.Columns.IndexOf(item), DbColumnName = item.DbColumnName.HasValue() ? item.DbColumnName : item.PropertyName, IsPrimarykey = item.IsPrimarykey, @@ -37,6 +37,7 @@ namespace SqlSugar ColumnDescription = item.ColumnDescription, Length = item.Length }; + GetDbType(item, propertyType, result); if (result.DataType.Equals("varchar", StringComparison.CurrentCultureIgnoreCase) && result.Length == 0) { result.Length = 1; diff --git a/Src/Asp.Net/SqlSugar/Realization/Sqlite/CodeFirst/SqliteCodeFirst.cs b/Src/Asp.Net/SqlSugar/Realization/Sqlite/CodeFirst/SqliteCodeFirst.cs index a7bba2c5b..287f4f6b1 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Sqlite/CodeFirst/SqliteCodeFirst.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Sqlite/CodeFirst/SqliteCodeFirst.cs @@ -43,9 +43,9 @@ namespace SqlSugar } protected override DbColumnInfo EntityColumnToDbColumn(EntityInfo entityInfo, string tableName, EntityColumnInfo item) { + var propertyType = UtilMethods.GetUnderType(item.PropertyInfo); var result = new DbColumnInfo() { - DataType = item.PropertyInfo.PropertyType.IsEnum?this.Context.Ado.DbBind.GetDbTypeName(UtilConstants.IntType.Name) :this.Context.Ado.DbBind.GetDbTypeName(UtilMethods.GetUnderType(item.PropertyInfo).Name), TableId = entityInfo.Columns.IndexOf(item), DbColumnName = item.DbColumnName.HasValue() ? item.DbColumnName : item.PropertyName, IsPrimarykey = item.IsPrimarykey, @@ -56,6 +56,7 @@ namespace SqlSugar ColumnDescription = item.ColumnDescription, Length = item.Length }; + GetDbType(item, propertyType, result); if (result.DataType.Equals("varchar", StringComparison.CurrentCultureIgnoreCase) && result.Length == 0) { result.Length = 1;