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

Commit e1f62a1

Browse files
committed
Force SqlExpression to be bound to DialectProvider at creation, change Clone() to call dialect factory, remove redundant overloads
1 parent f2e537b commit e1f62a1

File tree

19 files changed

+98
-95
lines changed

19 files changed

+98
-95
lines changed

src/FirebirdTests/TestLiteFirebird04/Main.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ public static void Main (string[] args)
1616

1717
OrmLiteConfig.DialectProvider = new FirebirdOrmLiteDialectProvider();
1818

19-
ServiceStack.OrmLite.SqlExpression<Company> sql=
20-
new FirebirdSqlExpression<Company>();
19+
ServiceStack.OrmLite.SqlExpression<Company> sql =
20+
OrmLiteConfig.DialectProvider.SqlExpression<Company>();
2121

2222
List<Object> names = new List<Object>();
2323
names.Add("SOME COMPANY");

src/OracleTests/TestLiteOracle04/Main.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ public static void Main (string[] args)
1717

1818
OrmLiteConfig.DialectProvider = new OracleOrmLiteDialectProvider();
1919

20-
ServiceStack.OrmLite.SqlExpression<Company> sql=
21-
new OracleSqlExpression<Company>();
20+
ServiceStack.OrmLite.SqlExpression<Company> sql =
21+
OrmLiteConfig.DialectProvider.SqlExpression<Company>();
2222

2323
List<Object> names = new List<Object>();
2424
names.Add("SOME COMPANY");

src/ServiceStack.OrmLite.Firebird/FirebirdOrmLiteDialectProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -728,7 +728,7 @@ private string Sequence(string modelName, string fieldName, string sequence)
728728

729729
public override SqlExpression<T> SqlExpression<T>()
730730
{
731-
return new FirebirdSqlExpression<T>();
731+
return new FirebirdSqlExpression<T>(this);
732732
}
733733

734734
public override bool DoesTableExist(IDbCommand dbCmd, string tableName)

src/ServiceStack.OrmLite.Firebird/FirebirdSqlExpression.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,13 @@ public class FirebirdSqlExpression<T> : SqlExpression<T>
99
private readonly string _trueExpression;
1010
private readonly string _falseExpression;
1111

12-
public FirebirdSqlExpression()
12+
public FirebirdSqlExpression(IOrmLiteDialectProvider dialectProvider)
13+
: base(dialectProvider)
1314
{
1415
_trueExpression = string.Format("({0}={1})", GetQuotedTrueValue(), GetQuotedTrueValue());
1516
_falseExpression = string.Format("({0}={1})", GetQuotedTrueValue(), GetQuotedFalseValue());
1617
}
1718

18-
public override SqlExpression<T> Clone()
19-
{
20-
return CopyTo(new FirebirdSqlExpression<T>());
21-
}
22-
2319
protected override object VisitBinary(BinaryExpression b)
2420
{
2521
object left, right;

src/ServiceStack.OrmLite.MySql/MySqlDialectProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ public override string GetQuotedName(string name)
141141

142142
public override SqlExpression<T> SqlExpression<T>()
143143
{
144-
return new MySqlExpression<T>();
144+
return new MySqlExpression<T>(this);
145145
}
146146

147147
public override bool DoesTableExist(IDbCommand dbCmd, string tableName)

src/ServiceStack.OrmLite.MySql/MySqlExpression.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55
/// </summary>
66
public class MySqlExpression<T> : SqlExpression<T>
77
{
8-
public override SqlExpression<T> Clone()
9-
{
10-
return CopyTo(new MySqlExpression<T>());
11-
}
8+
public MySqlExpression(IOrmLiteDialectProvider dialectProvider)
9+
: base(dialectProvider) {}
1210
}
1311
}

src/ServiceStack.OrmLite.Oracle/OracleOrmLiteDialectProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1050,7 +1050,7 @@ private string Sequence(string modelName, string fieldName, string sequence)
10501050

10511051
public override SqlExpression<T> SqlExpression<T>()
10521052
{
1053-
return new OracleSqlExpression<T>();
1053+
return new OracleSqlExpression<T>(this);
10541054
}
10551055

10561056
public override bool DoesTableExist(IDbCommand dbCmd, string tableName)

src/ServiceStack.OrmLite.Oracle/OracleSqlExpression.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ namespace ServiceStack.OrmLite.Oracle
66
{
77
public class OracleSqlExpression<T> : SqlExpression<T>
88
{
9+
public OracleSqlExpression(IOrmLiteDialectProvider dialectProvider)
10+
: base(dialectProvider) {}
11+
912
protected override object VisitColumnAccessMethod(MethodCallExpression m)
1013
{
1114
if (m.Method.Name == "Substring")
@@ -28,11 +31,6 @@ protected override object VisitColumnAccessMethod(MethodCallExpression m)
2831
}
2932
return base.VisitColumnAccessMethod(m);
3033
}
31-
32-
public override SqlExpression<T> Clone()
33-
{
34-
return CopyTo(new OracleSqlExpression<T>());
35-
}
3634
}
3735
}
3836

src/ServiceStack.OrmLite.PostgreSQL/PostgreSQLDialectProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ public override object ConvertDbValue(object value, Type type)
200200

201201
public override SqlExpression<T> SqlExpression<T>()
202202
{
203-
return new PostgreSqlExpression<T>();
203+
return new PostgreSqlExpression<T>(this);
204204
}
205205

206206
public override bool DoesTableExist(IDbCommand dbCmd, string tableName)

src/ServiceStack.OrmLite.PostgreSQL/PostgreSqlExpression.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@ namespace ServiceStack.OrmLite.PostgreSQL
22
{
33
public class PostgreSqlExpression<T> : SqlExpression<T>
44
{
5-
public override SqlExpression<T> Clone()
6-
{
7-
return CopyTo(new PostgreSqlExpression<T>());
8-
}
5+
public PostgreSqlExpression(IOrmLiteDialectProvider dialectProvider)
6+
: base(dialectProvider) {}
97
}
108
}

src/ServiceStack.OrmLite.SqlServer/SqlServerExpression.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,10 @@ namespace ServiceStack.OrmLite.SqlServer
44
{
55
public class SqlServerExpression<T> : SqlExpression<T>
66
{
7-
public override SqlExpression<T> Clone()
8-
{
9-
return CopyTo(new SqlServerExpression<T>());
10-
}
7+
public SqlServerExpression(IOrmLiteDialectProvider dialectProvider)
8+
: base(dialectProvider) {}
119

12-
public override string ToUpdateStatement(T item, bool excludeDefaults = false)
10+
public override string ToUpdateStatement(T item, bool excludeDefaults = false)
1311
{
1412
var setFields = new StringBuilder();
1513
var dialectProvider = OrmLiteConfig.DialectProvider;

src/ServiceStack.OrmLite.SqlServer/SqlServerOrmLiteDialectProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ public void EnsureUtc(bool shouldEnsureUtc)
221221

222222
public override SqlExpression<T> SqlExpression<T>()
223223
{
224-
return new SqlServerExpression<T>();
224+
return new SqlServerExpression<T>(this);
225225
}
226226

227227
public override bool DoesTableExist(IDbCommand dbCmd, string tableName)

src/ServiceStack.OrmLite.Sqlite/SqliteExpression.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ namespace ServiceStack.OrmLite.Sqlite
1111
/// </summary>
1212
public class SqliteExpression<T> : SqlExpression<T>
1313
{
14+
public SqliteExpression(IOrmLiteDialectProvider dialectProvider)
15+
: base(dialectProvider) {}
16+
1417
protected override object VisitColumnAccessMethod(MethodCallExpression m)
1518
{
1619
List<Object> args = this.VisitExpressionList(m.Arguments);
@@ -84,10 +87,5 @@ protected override object VisitSqlMethodCall(MethodCallExpression m)
8487

8588
return new PartialSqlString(statement);
8689
}
87-
88-
public override SqlExpression<T> Clone()
89-
{
90-
return CopyTo(new SqliteExpression<T>());
91-
}
9290
}
9391
}

src/ServiceStack.OrmLite.Sqlite/SqliteOrmLiteDialectProviderBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ protected override object GetValueOrDbNull<T>(FieldDefinition fieldDef, object o
223223

224224
public override SqlExpression<T> SqlExpression<T>()
225225
{
226-
return new SqliteExpression<T>();
226+
return new SqliteExpression<T>(this);
227227
}
228228

229229
public override bool DoesTableExist(IDbCommand dbCmd, string tableName)

src/ServiceStack.OrmLite/Expressions/SqlExpression.Join.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,17 +89,17 @@ private SqlExpression<T> InternalJoin<Source, Target>(string joinType,
8989
}
9090

9191
sqlExpr = "\n({0}.{1} = {2}.{3})".Fmt(
92-
parentDef.ModelName.SqlTable(),
93-
parentDef.PrimaryKey.FieldName.SqlColumn(),
94-
childDef.ModelName.SqlTable(),
95-
refField.FieldName.SqlColumn());
92+
SqlTable(parentDef.ModelName),
93+
SqlColumn(parentDef.PrimaryKey.FieldName),
94+
SqlTable(childDef.ModelName),
95+
SqlColumn(refField.FieldName));
9696
}
9797

9898
var joinDef = tableDefs.Contains(targetDef) && !tableDefs.Contains(sourceDef)
9999
? sourceDef
100100
: targetDef;
101101

102-
sbJoin.Append(" {0} {1} ".Fmt(joinType, joinDef.ModelName.SqlTable()));
102+
sbJoin.Append(" {0} {1} ".Fmt(joinType, SqlTable(joinDef.ModelName)));
103103
sbJoin.Append(" ON ");
104104
sbJoin.Append(sqlExpr);
105105

@@ -141,9 +141,9 @@ public string SelectInto<TModel>()
141141
if (sbSelect.Length > 0)
142142
sbSelect.Append(", ");
143143

144-
sbSelect.AppendFormat("{0}.{1}",
145-
tableDef.ModelName.SqlTable(),
146-
tableFieldDef.GetQuotedName());
144+
sbSelect.AppendFormat("{0}.{1}",
145+
SqlTable(tableDef.ModelName),
146+
tableFieldDef.GetQuotedName(DialectProvider));
147147
break;
148148
}
149149
}

0 commit comments

Comments
 (0)