From 8ee2cf6e8160f1bbe60d2040d22eedccf708595b Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sat, 15 Jul 2017 19:47:27 +0800 Subject: [PATCH] Enum Bug --- Src/Asp.Net/SqlServerTest/UnitTest/EnumTest.cs | 10 ++++++++++ .../Abstract/QueryableProvider/QueryableProvider.cs | 2 +- .../ExpressionsToSql/ResolveItems/BaseResolve.cs | 2 +- .../ResolveItems/MemberConstExpressionResolve.cs | 4 ++++ 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/EnumTest.cs b/Src/Asp.Net/SqlServerTest/UnitTest/EnumTest.cs index 68f9b53a3..c2ea58af3 100644 --- a/Src/Asp.Net/SqlServerTest/UnitTest/EnumTest.cs +++ b/Src/Asp.Net/SqlServerTest/UnitTest/EnumTest.cs @@ -20,6 +20,16 @@ namespace OrmTest.UnitTest var db = GetInstance(); var shoolValue = SchoolEnum.HarvardUniversity; var list = db.Queryable().AS("student").Where(it => it.SchoolId == shoolValue).ToList(); + + var x = new StudentEnum() + { + Name = shoolValue.ToString(), + SchoolId = shoolValue + }; + var id= db.Insertable(x).AS("student").ExecuteReutrnIdentity(); + var data = db.Queryable().AS("student").InSingle(id); + shoolValue = SchoolEnum.UniversityOfOxford; + var sql= db.Updateable().AS("student").UpdateColumns(it=>new StudentEnum() { Name="a" , SchoolId= shoolValue }).Where(it=>it.Id==id).ToSql(); } } } \ No newline at end of file diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index d4bc6317f..4008b3423 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -651,7 +651,7 @@ namespace SqlSugar { if (this.Context.IsSystemTablesConfig) { - return this.Context.DbMaintenance.GetPrimaries(this.EntityInfo.DbTableName); + return this.Context.DbMaintenance.GetPrimaries(this.Context.EntityProvider.GetTableName(this.EntityInfo.EntityName)); } else { diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/BaseResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/BaseResolve.cs index ea4b085a2..7973399f5 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/BaseResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/BaseResolve.cs @@ -174,7 +174,7 @@ namespace SqlSugar { var appendValue = this.Context.SqlParameterKeyWord + ExpressionConst.Const + Context.ParameterIndex; Context.ParameterIndex++; - if (value != null && value.GetType().IsEnum) { + if (value != null && value.GetType().GetTypeInfo().IsEnum()) { value = Convert.ToInt64(value); } this.Context.Parameters.Add(new SugarParameter(appendValue, value)); diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MemberConstExpressionResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MemberConstExpressionResolve.cs index 5fe6de1d9..ddcdd6cf6 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MemberConstExpressionResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MemberConstExpressionResolve.cs @@ -21,6 +21,10 @@ namespace SqlSugar case ResolveExpressType.Update: case ResolveExpressType.SelectSingle: case ResolveExpressType.SelectMultiple: + if (value != null && value.GetType().GetTypeInfo().IsEnum()) + { + value = Convert.ToInt64(value); + } parameter.BaseParameter.CommonTempData = value; break; case ResolveExpressType.WhereSingle: