From 89c0e0397517e94a8b9a653503902f2bd4199641 Mon Sep 17 00:00:00 2001 From: "610262374@qq.com" <610262374@qq.com> Date: Sat, 29 Sep 2018 14:44:05 +0800 Subject: [PATCH] Add SqlFunc.GetRandom --- Src/Asp.Net/SqlServerTest/Config.cs | 6 +++--- Src/Asp.Net/SqlServerTest/Demos/1_Query.cs | 2 ++ .../SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs | 5 +++++ .../SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs | 1 + Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/SqlFunc.cs | 1 + .../ResolveItems/MethodCallExpressionResolve.cs | 2 ++ 6 files changed, 14 insertions(+), 3 deletions(-) diff --git a/Src/Asp.Net/SqlServerTest/Config.cs b/Src/Asp.Net/SqlServerTest/Config.cs index 7d87d0ee6..43f3df924 100644 --- a/Src/Asp.Net/SqlServerTest/Config.cs +++ b/Src/Asp.Net/SqlServerTest/Config.cs @@ -8,8 +8,8 @@ namespace OrmTest { public class Config { - public static string ConnectionString = "server=.;uid=sa;pwd=sasa;database=SqlSugar4XTest"; - public static string ConnectionString2 = "server=.;uid=sa;pwd=sasa;database=SQLSUGAR4XTEST"; - public static string ConnectionString3 = "server=.;uid=sa;pwd=sasa;database=sqlsugar4xtest"; + public static string ConnectionString = "server=.;uid=sa;pwd=@jhl85661501;database=SqlSugar4XTest"; + public static string ConnectionString2 = "server=.;uid=sa;pwd=@jhl85661501;database=SQLSUGAR4XTEST"; + public static string ConnectionString3 = "server=.;uid=sa;pwd=@jhl85661501;database=sqlsugar4xtest"; } } diff --git a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs index 1eab9ce24..285f97ad8 100644 --- a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs +++ b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs @@ -244,6 +244,8 @@ namespace OrmTest.Demo var db = GetInstance(); var dbTime = db.GetDate(); var getAll = db.Queryable().Select("*").ToList(); + var getAll2 = db.Queryable().ToList(); + var getRandomList = db.Queryable().OrderBy(it => SqlFunc.GetRandom()).ToList(); var getAllOrder = db.Queryable().OrderBy(it => it.Id).OrderBy(it => it.Name, OrderByType.Desc).ToList(); var getId = db.Queryable().Select(it => it.Id).ToList(); var getNew = db.Queryable().Where(it => it.Id == 1).Select(it => new { id = SqlFunc.IIF(it.Id == 0, 1, it.Id), it.Name, it.SchoolId }).ToList(); diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs index 6b0624d93..b91e925a4 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs @@ -325,6 +325,11 @@ namespace SqlSugar return "GETDATE()"; } + public virtual string GetRandom() + { + return "NEWID()"; + } + public virtual string CaseWhen(List> sqls) { StringBuilder reslut = new StringBuilder(); diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs index 0e800a6ef..5e6c1b752 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs @@ -59,5 +59,6 @@ namespace SqlSugar string Pack(string sql); string Null(); string GetDate(); + string GetRandom(); } } diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/SqlFunc.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/SqlFunc.cs index 265e3f157..e33cf1b69 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/SqlFunc.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/SqlFunc.cs @@ -110,6 +110,7 @@ namespace SqlSugar /// public static TResult GetSelfAndAutoFill(TResult value) { throw new NotSupportedException("Can only be used in expressions"); } public static DateTime GetDate() { throw new NotSupportedException("Can only be used in expressions"); } + public static string GetRandom() { throw new NotSupportedException("Can only be used in expressions"); } /// /// Subquery /// diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs index a56e5695a..91f9eda82 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs @@ -504,6 +504,8 @@ namespace SqlSugar return this.Context.DbMehtods.GetSelfAndAutoFill(model.Args[0].MemberValue.ObjToString(), this.Context.IsSingle); case "GetDate": return this.Context.DbMehtods.GetDate(); + case "GetRandom": + return this.Context.DbMehtods.GetRandom(); default: break; }