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

Commit a33a528

Browse files
committed
C# 6-ify SqlServerOrmLiteDialectProvider.cs & fixed issue in GetForeignKeyOnUpdateClause
1 parent 35d907b commit a33a528

File tree

1 file changed

+27
-36
lines changed

1 file changed

+27
-36
lines changed

src/ServiceStack.OrmLite.SqlServer/SqlServerOrmLiteDialectProvider.cs

Lines changed: 27 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -65,16 +65,14 @@ public override IDbConnection CreateConnection(string connectionString, Dictiona
6565
{
6666
var filePath = connectionString;
6767

68-
var filePathWithExt = filePath.ToLower().EndsWith(".mdf")
68+
var filePathWithExt = filePath.EndsWithIgnoreCase(".mdf")
6969
? filePath
7070
: filePath + ".mdf";
7171

7272
var fileName = Path.GetFileName(filePathWithExt);
7373
var dbName = fileName.Substring(0, fileName.Length - ".mdf".Length);
7474

75-
connectionString = string.Format(
76-
@"Data Source=.\SQLEXPRESS;AttachDbFilename={0};Initial Catalog={1};Integrated Security=True;User Instance=True;",
77-
filePathWithExt, dbName);
75+
connectionString = $@"Data Source=.\SQLEXPRESS;AttachDbFilename={filePathWithExt};Initial Catalog={dbName};Integrated Security=True;User Instance=True;";
7876
}
7977

8078
if (options != null)
@@ -155,7 +153,7 @@ public override string GetForeignKeyOnDeleteClause(ForeignKeyConstraint foreignK
155153

156154
public override string GetForeignKeyOnUpdateClause(ForeignKeyConstraint foreignKey)
157155
{
158-
return "RESTRICT" == (foreignKey.OnDelete ?? "").ToUpper()
156+
return "RESTRICT" == (foreignKey.OnUpdate ?? "").ToUpper()
159157
? ""
160158
: base.GetForeignKeyOnUpdateClause(foreignKey);
161159
}
@@ -176,9 +174,9 @@ public override string GetDropForeignKeyConstraints(ModelDefinition modelDef)
176174
fieldDef);
177175

178176
var tableName = GetQuotedTableName(modelDef);
179-
sb.AppendLine("IF EXISTS (SELECT name FROM sys.foreign_keys WHERE name = '{0}')".Fmt(foreignKeyName));
177+
sb.AppendLine($"IF EXISTS (SELECT name FROM sys.foreign_keys WHERE name = '{foreignKeyName}')");
180178
sb.AppendLine("BEGIN");
181-
sb.AppendLine(" ALTER TABLE {0} DROP {1};".Fmt(tableName, foreignKeyName));
179+
sb.AppendLine($" ALTER TABLE {tableName} DROP {foreignKeyName};");
182180
sb.AppendLine("END");
183181
}
184182
}
@@ -199,9 +197,9 @@ public override string ToAddColumnStatement(Type modelType, FieldDefinition fiel
199197
fieldDef.DefaultValue,
200198
fieldDef.CustomFieldDefinition);
201199

202-
return string.Format("ALTER TABLE {0} ADD {1};",
203-
GetQuotedTableName(GetModel(modelType).ModelName),
204-
column);
200+
var modelName = GetQuotedTableName(GetModel(modelType).ModelName);
201+
202+
return string.Format($"ALTER TABLE {modelName} ADD {column};");
205203
}
206204

207205
public override string ToAlterColumnStatement(Type modelType, FieldDefinition fieldDef)
@@ -217,28 +215,25 @@ public override string ToAlterColumnStatement(Type modelType, FieldDefinition fi
217215
fieldDef.DefaultValue,
218216
fieldDef.CustomFieldDefinition);
219217

220-
return string.Format("ALTER TABLE {0} ALTER COLUMN {1};",
221-
GetQuotedTableName(GetModel(modelType).ModelName),
222-
column);
218+
var modelName = GetQuotedTableName(GetModel(modelType).ModelName);
219+
220+
return $"ALTER TABLE {modelName} ALTER COLUMN {column};";
223221
}
224222

225223
public override string ToChangeColumnNameStatement(Type modelType, FieldDefinition fieldDef, string oldColumnName)
226224
{
227-
var objectName = string.Format("{0}.{1}",
228-
NamingStrategy.GetTableName(GetModel(modelType).ModelName),
229-
oldColumnName);
230-
231-
return string.Format("EXEC sp_rename {0}, {1}, {2};",
232-
GetQuotedValue(objectName),
233-
GetQuotedValue(fieldDef.FieldName),
234-
GetQuotedValue("COLUMN"));
225+
var modelName = NamingStrategy.GetTableName(GetModel(modelType).ModelName);
226+
227+
var objectName = $"{modelName}.{oldColumnName}";
228+
229+
return $"EXEC sp_rename {GetQuotedValue(objectName)}, {GetQuotedValue(fieldDef.FieldName)}, {GetQuotedValue("COLUMN")};";
235230
}
236231

237232
public override string GetColumnDefinition(string fieldName, Type fieldType, bool isPrimaryKey, bool autoIncrement,
238233
bool isNullable, bool isRowVersion, int? fieldLength, int? scale, string defaultValue, string customFieldDefinition)
239234
{
240235
if (isRowVersion)
241-
return "{0} rowversion NOT NULL".Fmt(fieldName);
236+
return $"{fieldName} rowversion NOT NULL";
242237

243238
var definition = base.GetColumnDefinition(fieldName, fieldType, isPrimaryKey, autoIncrement,
244239
isNullable, isRowVersion, fieldLength, scale, defaultValue, customFieldDefinition);
@@ -261,10 +256,10 @@ public override string ToSelectStatement(ModelDefinition modelDef,
261256
return StringBuilderCache.ReturnAndFree(sb) + orderByExpression;
262257

263258
if (offset.HasValue && offset.Value < 0)
264-
throw new ArgumentException(string.Format("Skip value:'{0}' must be>=0", offset.Value));
259+
throw new ArgumentException($"Skip value:'{offset.Value}' must be>=0");
265260

266261
if (rows.HasValue && rows.Value < 0)
267-
throw new ArgumentException(string.Format("Rows value:'{0}' must be>=0", rows.Value));
262+
throw new ArgumentException($"Rows value:'{rows.Value}' must be>=0");
268263

269264
var skip = offset.HasValue ? offset.Value : 0;
270265
var take = rows.HasValue ? rows.Value : int.MaxValue;
@@ -279,9 +274,10 @@ public override string ToSelectStatement(ModelDefinition modelDef,
279274
if (take == int.MaxValue)
280275
return sql;
281276

282-
if (sql.Length < "SELECT".Length) return sql;
283-
sql = selectType + " TOP " + take + sql.Substring(selectType.Length);
284-
return sql;
277+
if (sql.Length < "SELECT".Length)
278+
return sql;
279+
280+
return $"{selectType} TOP {take + sql.Substring(selectType.Length)}";
285281
}
286282

287283
// Required because ordering is done by Windowing function
@@ -290,17 +286,12 @@ public override string ToSelectStatement(ModelDefinition modelDef,
290286
if (modelDef.PrimaryKey == null)
291287
throw new ApplicationException("Malformed model, no PrimaryKey defined");
292288

293-
orderByExpression = string.Format("ORDER BY {0}",
294-
this.GetQuotedColumnName(modelDef, modelDef.PrimaryKey));
289+
orderByExpression = $"ORDER BY {this.GetQuotedColumnName(modelDef, modelDef.PrimaryKey)}";
295290
}
296291

297-
var ret = string.Format(
298-
"SELECT * FROM (SELECT {0}, ROW_NUMBER() OVER ({1}) As RowNum {2}) AS RowConstrainedResult WHERE RowNum > {3} AND RowNum <= {4}",
299-
selectExpression.Substring(selectType.Length),
300-
orderByExpression,
301-
bodyExpression,
302-
skip,
303-
take == int.MaxValue ? take : skip + take);
292+
var row = take == int.MaxValue ? take : skip + take;
293+
294+
var ret = $"SELECT * FROM (SELECT {selectExpression.Substring(selectType.Length)}, ROW_NUMBER() OVER ({orderByExpression}) As RowNum {bodyExpression}) AS RowConstrainedResult WHERE RowNum > {skip} AND RowNum <= {row}";
304295

305296
return ret;
306297
}

0 commit comments

Comments
 (0)