Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit 569be00

Browse files
committed
Fix tests
1 parent 9c27dc2 commit 569be00

File tree

3 files changed

+34
-46
lines changed

3 files changed

+34
-46
lines changed

src/ServiceStack.OrmLite.MySql/MySqlExpression.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.Collections.Generic;
2+
using System.Linq.Expressions;
23

34
namespace ServiceStack.OrmLite.MySql
45
{
@@ -11,5 +12,10 @@ protected override PartialSqlString ToConcatPartialString(List<object> args)
1112
{
1213
return new PartialSqlString(string.Format("CONCAT({0})", string.Join(", ", args)));
1314
}
15+
16+
protected override string ToCast(string quotedColName)
17+
{
18+
return string.Format("cast({0} as char(1000))", quotedColName);
19+
}
1420
}
1521
}

src/ServiceStack.OrmLite/Expressions/SqlExpression.cs

Lines changed: 23 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -2155,81 +2155,60 @@ protected virtual object VisitColumnAccessMethod(MethodCallExpression m)
21552155
statement = string.Format("lower({0})", quotedColName);
21562156
break;
21572157
case "StartsWith":
2158-
if (!OrmLiteConfig.StripUpperInLike)
2159-
{
2160-
statement = string.Format("upper({0}) like {1}{2}",
2158+
statement = !OrmLiteConfig.StripUpperInLike
2159+
? string.Format("upper({0}) like {1}{2}",
21612160
quotedColName,
21622161
ConvertToParam(wildcardArg.ToUpper() + "%"),
2163-
escapeSuffix);
2164-
}
2165-
else
2166-
{
2167-
statement = string.Format("{0} like {1}{2}",
2162+
escapeSuffix)
2163+
: string.Format("{0} like {1}{2}",
21682164
quotedColName,
21692165
ConvertToParam(wildcardArg + "%"),
21702166
escapeSuffix);
2171-
}
21722167
break;
21732168
case "EndsWith":
2174-
if (!OrmLiteConfig.StripUpperInLike)
2175-
{
2176-
statement = string.Format("upper({0}) like {1}{2}",
2169+
statement = !OrmLiteConfig.StripUpperInLike
2170+
? string.Format("upper({0}) like {1}{2}",
21772171
quotedColName,
21782172
ConvertToParam("%" + wildcardArg.ToUpper()),
2179-
escapeSuffix);
2180-
}
2181-
else
2182-
{
2183-
statement = string.Format("{0} like {1}{2}",
2173+
escapeSuffix)
2174+
: string.Format("{0} like {1}{2}",
21842175
quotedColName,
21852176
ConvertToParam("%" + wildcardArg),
21862177
escapeSuffix);
2187-
}
21882178
break;
21892179
case "Contains":
2190-
if (!OrmLiteConfig.StripUpperInLike)
2191-
{
2192-
statement = string.Format("upper({0}) like {1}{2}",
2180+
statement = !OrmLiteConfig.StripUpperInLike
2181+
? string.Format("upper({0}) like {1}{2}",
21932182
quotedColName,
21942183
ConvertToParam("%" + wildcardArg.ToUpper() + "%"),
2195-
escapeSuffix);
2196-
}
2197-
else
2198-
{
2199-
statement = string.Format("{0} like {1}{2}",
2184+
escapeSuffix)
2185+
: string.Format("{0} like {1}{2}",
22002186
quotedColName,
22012187
ConvertToParam("%" + wildcardArg + "%"),
22022188
escapeSuffix);
2203-
}
22042189
break;
22052190
case "Substring":
22062191
var startIndex = int.Parse(args[0].ToString()) + 1;
2207-
if (args.Count == 2)
2208-
{
2209-
var length = int.Parse(args[1].ToString());
2210-
statement = GetSubstringSql(quotedColName, startIndex, length);
2211-
}
2212-
else
2213-
{
2214-
statement = GetSubstringSql(quotedColName, startIndex);
2215-
}
2192+
statement = args.Count == 2
2193+
? GetSubstringSql(quotedColName, startIndex, int.Parse(args[1].ToString()))
2194+
: GetSubstringSql(quotedColName, startIndex);
22162195
break;
22172196
case "ToString":
2218-
if (m.Object.Type == typeof(string))
2219-
{
2220-
statement = string.Format("({0})", quotedColName);
2221-
}
2222-
else
2223-
{
2224-
statement = string.Format("cast({0} as varchar(1000))", quotedColName);
2225-
}
2197+
statement = m.Object.Type == typeof(string)
2198+
? string.Format("({0})", quotedColName)
2199+
: ToCast(quotedColName.ToString());
22262200
break;
22272201
default:
22282202
throw new NotSupportedException();
22292203
}
22302204
return new PartialSqlString(statement);
22312205
}
22322206

2207+
protected virtual string ToCast(string quotedColName)
2208+
{
2209+
return string.Format("cast({0} as varchar(1000))", quotedColName);
2210+
}
2211+
22332212
public virtual string GetSubstringSql(object quotedColumn, int startIndex, int? length = null)
22342213
{
22352214
return length != null

tests/ServiceStack.OrmLite.Tests/Issues/JoinBoolSqlServerIssue.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,11 @@ public void Can_Join_on_bool()
1212
{
1313
using (var db = OpenDbConnection())
1414
{
15-
db.DropAndCreateTable<TestType>();
16-
db.DropAndCreateTable<TestType2>();
15+
db.DropTable<TestType>();
16+
db.DropTable<TestType2>();
17+
18+
db.CreateTable<TestType2>();
19+
db.CreateTable<TestType>();
1720

1821
var q = db.From<TestType>()
1922
.LeftJoin<TestType2>((t1, t2) => t2.BoolCol == true && t1.Id == t2.Id);

0 commit comments

Comments
 (0)