diff --git a/Src/Asp.Net/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteExpressionContext.cs b/Src/Asp.Net/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteExpressionContext.cs index f88510927..fbd7ac009 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteExpressionContext.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteExpressionContext.cs @@ -20,6 +20,14 @@ namespace SqlSugar return string.Format("LENGTH({0})", parameter.MemberName); } + public override string Substring(MethodCallExpressionModel model) + { + var parameter = model.Args[0]; + var parameter2 = model.Args[1]; + var parameter3 = model.Args[2]; + return string.Format("SUBSTR({0},1 + {1},{2})", parameter.MemberName, parameter2.MemberName, parameter3.MemberName); + } + public override string Contains(MethodCallExpressionModel model) { var parameter = model.Args[0]; diff --git a/Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest.sqlite b/Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest.sqlite index 5e1027163..a95643319 100644 Binary files a/Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest.sqlite and b/Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest.sqlite differ diff --git a/Src/Asp.Net/SqliteTest/Demos/1_Query.cs b/Src/Asp.Net/SqliteTest/Demos/1_Query.cs index ce785b2e1..8dde95a2e 100644 --- a/Src/Asp.Net/SqliteTest/Demos/1_Query.cs +++ b/Src/Asp.Net/SqliteTest/Demos/1_Query.cs @@ -156,6 +156,7 @@ namespace OrmTest.Demo var dbTime = db.GetDate(); var getAll = db.Queryable().ToList(); var getLike = db.Queryable().Where(it => it.Name.Contains("a")).ToList(); + var getSub = db.Queryable().Where(it => it.Name.Substring(0,1)=="a").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/SqliteTest/UnitTest/ExpressionTest/Method.cs b/Src/Asp.Net/SqliteTest/UnitTest/ExpressionTest/Method.cs index b99719431..b5bf6d7b5 100644 --- a/Src/Asp.Net/SqliteTest/UnitTest/ExpressionTest/Method.cs +++ b/Src/Asp.Net/SqliteTest/UnitTest/ExpressionTest/Method.cs @@ -130,7 +130,7 @@ namespace OrmTest.UnitTest expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "(SUBSTRING(@MethodConst0,1 + @MethodConst1,@MethodConst2) = @Const3 )", new List() { + base.Check(value, pars, "(SUBSTR(@MethodConst0,1 + @MethodConst1,@MethodConst2) = @Const3 )", new List() { new SugarParameter("@MethodConst0","aaaa"), new SugarParameter("@MethodConst1",0) , new SugarParameter("@MethodConst2",2),new SugarParameter("@Const3","a") }, "Substring error"); } @@ -142,7 +142,7 @@ namespace OrmTest.UnitTest expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "(SUBSTRING(@MethodConst0,1 + @MethodConst1,@MethodConst2) = @Const3 )", new List() { + base.Check(value, pars, "(SUBSTR(@MethodConst0,1 + @MethodConst1,@MethodConst2) = @Const3 )", new List() { new SugarParameter("@MethodConst0","aaaa"), new SugarParameter("@MethodConst1",0) , new SugarParameter("@MethodConst2",2),new SugarParameter("@Const3","a") }, "Substring error"); }