From b43f900b0d96703af37b33fe36209312905f730b Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Mon, 17 Jul 2017 13:03:56 +0800 Subject: [PATCH] Update Core --- .../IDataReaderEntityBuilder.cs | 4 ++ .../ExpressionsToSql/ExpressionContext.cs | 2 + .../Method/DefaultDbMethod.cs | 11 +++++- .../ExpressionsToSql/Method/IDbMethods.cs | 1 + .../ExpressionsToSql/Method/SqlFunc.cs | 7 ++++ .../MethodCallExpressionResolve.cs | 36 ++++++++++++------ .../src/SqlSugar/Properties/AssemblyInfo.cs | 4 +- .../src/SqlSugar/SqlSugarForCore.nuspec | 2 +- .../SqlServerTest/src/SqliteTest/Config.cs | 2 +- .../SqliteTest/DataBase/SqlSugar4xTest.sqlite | Bin 159744 -> 167936 bytes 10 files changed, 51 insertions(+), 18 deletions(-) diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/Abstract/DbBindProvider/IDataReaderEntityBuilder.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/Abstract/DbBindProvider/IDataReaderEntityBuilder.cs index ce80a3768..cfdef3de8 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/Abstract/DbBindProvider/IDataReaderEntityBuilder.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/Abstract/DbBindProvider/IDataReaderEntityBuilder.cs @@ -222,6 +222,10 @@ namespace SqlSugar method = isNullableType ? getConvertInt32 : getInt32; if (bindProperyTypeName.IsContainsIn("int64")) method = isNullableType ? getConvertInt64 : getInt64; + if (bindProperyTypeName.IsContainsIn("byte")) + method = isNullableType ? getConvertByte : getByte; + if (bindProperyTypeName.IsContainsIn("int16")) + method = isNullableType ? getConvertInt16 : getInt16; break; case CSharpDataType.@bool: if (bindProperyTypeName == "bool" || bindProperyTypeName == "boolean") diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/ExpressionsToSql/ExpressionContext.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/ExpressionsToSql/ExpressionContext.cs index 3babbc7dd..81a52dd17 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/ExpressionsToSql/ExpressionContext.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/ExpressionsToSql/ExpressionContext.cs @@ -179,6 +179,7 @@ namespace SqlSugar } public virtual string GetAsString(string asName, string fieldValue) { + if (fieldValue.Contains(".*")) return fieldValue; return string.Format(" {0} {1} {2} ", GetTranslationColumnName(fieldValue), "AS", GetTranslationColumnName(asName)); } @@ -189,6 +190,7 @@ namespace SqlSugar public virtual string GetAsString(string asName, string fieldValue, string fieldShortName) { + if (fieldValue.Contains(".*")) return fieldValue; return string.Format(" {0} {1} {2} ", GetTranslationColumnName(fieldShortName + "." + fieldValue), "AS", GetTranslationColumnName(asName)); } public virtual void Clear() diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/ExpressionsToSql/Method/DefaultDbMethod.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/ExpressionsToSql/Method/DefaultDbMethod.cs index 4f63df451..c765c70f0 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/ExpressionsToSql/Method/DefaultDbMethod.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/ExpressionsToSql/Method/DefaultDbMethod.cs @@ -6,7 +6,7 @@ using System.Text; using System.Threading.Tasks; namespace SqlSugar { - public partial class DefaultDbMethod : IDbMethods + public partial class DefaultDbMethod : IDbMethods { public virtual string IIF(MethodCallExpressionModel model) { @@ -273,7 +273,14 @@ namespace SqlSugar public string GuidNew() { - return "'"+Guid.NewGuid()+"' "; + return "'" + Guid.NewGuid() + "' "; + } + + public string GetSelfAndAutoFill(string shortName, bool isSingle) + { + if (isSingle) return "*"; + else + return string.Format("{0}.*", shortName); } } } diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/ExpressionsToSql/Method/IDbMethods.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/ExpressionsToSql/Method/IDbMethods.cs index 0e6cca3ce..4346f7896 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/ExpressionsToSql/Method/IDbMethods.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/ExpressionsToSql/Method/IDbMethods.cs @@ -47,6 +47,7 @@ namespace SqlSugar string AggregateMax(MethodCallExpressionModel model); string AggregateCount(MethodCallExpressionModel model); string MappingColumn(MethodCallExpressionModel model); + string GetSelfAndAutoFill(string shortName,bool isSingle); string True(); string False(); string GuidNew(); diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/ExpressionsToSql/Method/SqlFunc.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/ExpressionsToSql/Method/SqlFunc.cs index df845d243..5f20b8b28 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/ExpressionsToSql/Method/SqlFunc.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/ExpressionsToSql/Method/SqlFunc.cs @@ -95,5 +95,12 @@ namespace SqlSugar public static TResult AggregateMax(TResult thisValue) { throw new NotSupportedException("This method is not supported by the current parameter"); } public static TResult AggregateCount(TResult thisValue) { throw new NotSupportedException("This method is not supported by the current parameter"); } public static TResult MappingColumn(TResult oldColumnName,string newColumnName) { throw new NotSupportedException("This method is not supported by the current parameter"); } + /// + ///Example: new NewT(){name=SqlFunc.GetSelfAndAutoFill(it)} Generated SQL it.* + /// + /// + /// + /// + public static TResult GetSelfAndAutoFill(TResult value) { throw new NotSupportedException("This method is not supported by the current parameter"); } } } diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs index 9d3f96af2..e79d3e92c 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs @@ -67,6 +67,7 @@ namespace SqlSugar { case ResolveExpressType.WhereSingle: case ResolveExpressType.WhereMultiple: + Check.Exception(name == "GetSelfAndAutoFill", "SqlFunc.GetSelfAndAutoFill can only be used in Select."); Where(parameter, isLeft, name, args, model); break; case ResolveExpressType.SelectSingle: @@ -111,21 +112,29 @@ namespace SqlSugar private void Select(ExpressionParameter parameter, bool? isLeft, string name, IEnumerable args, MethodCallExpressionModel model, List appendArgs = null) { - foreach (var item in args) + if (name == "GetSelfAndAutoFill") { - var isBinaryExpression = item is BinaryExpression || item is MethodCallExpression; - if (isBinaryExpression) - { - model.Args.Add(GetMethodCallArgs(parameter, item)); - } - else - { - Default(parameter, model, item); - } + var memberValue = (args.First() as MemberExpression).Expression.ToString(); + model.Args.Add(new MethodCallExpressionArgs() { MemberValue= memberValue, IsMember=true, MemberName= memberValue }); } - if (appendArgs != null) + else { - model.Args.AddRange(appendArgs); + foreach (var item in args) + { + var isBinaryExpression = item is BinaryExpression || item is MethodCallExpression; + if (isBinaryExpression) + { + model.Args.Add(GetMethodCallArgs(parameter, item)); + } + else + { + Default(parameter, model, item); + } + } + if (appendArgs != null) + { + model.Args.AddRange(appendArgs); + } } parameter.BaseParameter.CommonTempData = GetMdthodValue(name, model); } @@ -269,6 +278,9 @@ namespace SqlSugar Check.Exception(!isValid, "SqlFunc.MappingColumn parameters error, The property name on the left, string value on the right"); this.Context.Parameters.RemoveAll(it => it.ParameterName == model.Args[1].MemberName.ObjToString()); return mappingColumnResult; + case "GetSelfAndAutoFill": + this.Context.Parameters.RemoveAll(it => it.ParameterName == model.Args[0].MemberName.ObjToString()); + return this.Context.DbMehtods.GetSelfAndAutoFill(model.Args[0].MemberValue.ObjToString(),this.Context.IsSingle); default: break; } diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/Properties/AssemblyInfo.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/Properties/AssemblyInfo.cs index 9fec818ba..da06c2d52 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/Properties/AssemblyInfo.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/Properties/AssemblyInfo.cs @@ -17,5 +17,5 @@ using System.Runtime.InteropServices; // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("1c022a5c-4e4d-4026-a8a3-f659b9740a1a")] -[assembly: AssemblyVersion("4.2.0.9")] -[assembly: AssemblyFileVersion("4.2.0.9")] +[assembly: AssemblyVersion("4.2.1")] +[assembly: AssemblyFileVersion("4.2.1")] diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/SqlSugarForCore.nuspec b/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/SqlSugarForCore.nuspec index 42e8a2bac..caaf97fef 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/SqlSugarForCore.nuspec +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlSugar/SqlSugarForCore.nuspec @@ -2,7 +2,7 @@ sqlSugarCore - 4.2.0.9 + 4.2.1 sunkaixuan Landa http://www.apache.org/licenses/LICENSE-2.0.html diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqliteTest/Config.cs b/Src/Asp.NetCore/SqlServerTest/src/SqliteTest/Config.cs index e30d5a58f..e3e5dc128 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqliteTest/Config.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqliteTest/Config.cs @@ -8,6 +8,6 @@ namespace OrmTest { public class Config { - public static string ConnectionString = @"DataSource=F:\MyOpenSource\SqlSugar4.XNew\SqlSugar\Src\Asp.NetCore\SqlServerTest\src\SqliteTest\DataBase\SqlSugar4xTest.sqlite"; + public static string ConnectionString = @"DataSource=D:\MyGit\SqlSugar\Src\Asp.NetCore\SqlServerTest\src\SqliteTest\DataBase\SqlSugar4xTest.sqlite"; } } diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqliteTest/DataBase/SqlSugar4xTest.sqlite b/Src/Asp.NetCore/SqlServerTest/src/SqliteTest/DataBase/SqlSugar4xTest.sqlite index 40e85bed9bed56e91673c32e584e1d1f579fcf48..ee99c4227a27417ec46b9e17f86f5e64db1e9050 100644 GIT binary patch literal 167936 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