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

Commit fe6a857

Browse files
committed
Move mysql check to the MySqlExpression .
1 parent 259be98 commit fe6a857

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

src/ServiceStack.OrmLite.MySql/MySqlExpression.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,10 @@ public override string ToDeleteRowStatement()
1616
? $"DELETE {DialectProvider.GetQuotedTableName(modelDef)} {FromExpression} {WhereExpression}"
1717
: base.ToDeleteRowStatement();
1818
}
19+
20+
protected override string CreateInSubQuerySql(string quotedColName, string subSelect)
21+
{
22+
return $"{quotedColName} IN (SELECT * FROM ({subSelect}) SubQuery)";
23+
}
1924
}
2025
}

src/ServiceStack.OrmLite/Expressions/SqlExpression.cs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2263,20 +2263,18 @@ protected string ConvertInExpressionToSql(MethodCallExpression m, object quotedC
22632263
var paramsRegex = new Regex(renameParams[i].Item1 + "([^\\d])");
22642264
subSelect = paramsRegex.Replace(subSelect, renameParams[i].Item2 + "$1");
22652265
}
2266-
2267-
if (DialectProvider.GetType().Name == "MySqlDialectProvider")
2268-
{
2269-
return $"{quotedColName} IN (SELECT * FROM ({subSelect}) SubQuery)";
2270-
}
2271-
else
2272-
{
2273-
return $"{quotedColName} IN ({subSelect})";
2274-
}
2266+
2267+
return CreateInSubQuerySql(quotedColName, subSelect);
22752268
}
22762269

22772270
throw new NotSupportedException($"In({argValue.GetType()})");
22782271
}
22792272

2273+
protected virtual string CreateInSubQuerySql(string quotedColName,string subSelect)
2274+
{
2275+
return $"{quotedColName} IN ({subSelect})";
2276+
}
2277+
22802278
protected virtual object VisitColumnAccessMethod(MethodCallExpression m)
22812279
{
22822280
List<object> args = this.VisitExpressionList(m.Arguments);

0 commit comments

Comments
 (0)