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

Commit b8030fa

Browse files
committed
Refactor to use shared skip columns method for each query type
1 parent fd058ee commit b8030fa

File tree

2 files changed

+30
-10
lines changed

2 files changed

+30
-10
lines changed

src/ServiceStack.OrmLite/FieldDefinition.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,21 @@ public string GetQuotedValue(object fromInstance)
8888
public string CustomFieldDefinition { get; set; }
8989

9090
public bool IsRefType { get; set; }
91+
92+
public bool ShouldSkipInsert()
93+
{
94+
return AutoIncrement || IsComputed || IsRowVersion;
95+
}
96+
97+
public bool ShouldSkipUpdate()
98+
{
99+
return IsComputed;
100+
}
101+
102+
public bool ShouldSkipDelete()
103+
{
104+
return IsComputed;
105+
}
91106
}
92107

93108
public class ForeignKeyConstraint

src/ServiceStack.OrmLite/OrmLiteDialectProviderBase.cs

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -424,10 +424,12 @@ public virtual string ToCountStatement(Type fromTableType, string sqlFilter, par
424424
!string.IsNullOrEmpty(sqlFilter)
425425
&& sqlFilter.TrimStart().StartsWith(SelectStatement, StringComparison.OrdinalIgnoreCase);
426426

427-
if (isFullSelectStatement) return (filterParams != null ? sqlFilter.SqlFmt(filterParams) : sqlFilter);
427+
if (isFullSelectStatement)
428+
return (filterParams != null ? sqlFilter.SqlFmt(filterParams) : sqlFilter);
428429

429430
sql.AppendFormat("SELECT {0} FROM {1}", "COUNT(*)",
430431
GetQuotedTableName(modelDef));
432+
431433
if (!string.IsNullOrEmpty(sqlFilter))
432434
{
433435
sqlFilter = filterParams != null ? sqlFilter.SqlFmt(filterParams) : sqlFilter;
@@ -487,10 +489,9 @@ public virtual string GetColumnNames(ModelDefinition modelDef)
487489
if (sqlColumns.Length > 0)
488490
sqlColumns.Append(", ");
489491

490-
if (field.IsRowVersion)
491-
sqlColumns.Append(GetRowVersionColumnName(field));
492-
else
493-
sqlColumns.Append(GetQuotedColumnName(field.FieldName));
492+
sqlColumns.Append(field.IsRowVersion
493+
? GetRowVersionColumnName(field)
494+
: GetQuotedColumnName(field.FieldName));
494495
}
495496

496497
return sqlColumns.ToString();
@@ -508,7 +509,7 @@ public virtual string ToInsertRowStatement(IDbCommand command, object objWithPro
508509

509510
foreach (var fieldDef in modelDef.FieldDefinitions)
510511
{
511-
if (fieldDef.AutoIncrement || fieldDef.IsComputed || fieldDef.IsRowVersion)
512+
if (fieldDef.ShouldSkipInsert())
512513
continue;
513514

514515
//insertFields contains Property "Name" of fields to insert ( that's how expressions work )
@@ -547,7 +548,7 @@ public virtual void PrepareParameterizedInsertStatement<T>(IDbCommand cmd, IColl
547548

548549
foreach (var fieldDef in modelDef.FieldDefinitionsArray)
549550
{
550-
if (fieldDef.AutoIncrement || fieldDef.IsComputed || fieldDef.IsRowVersion)
551+
if (fieldDef.ShouldSkipInsert())
551552
continue;
552553

553554
//insertFields contains Property "Name" of fields to insert ( that's how expressions work )
@@ -590,7 +591,7 @@ public virtual bool PrepareParameterizedUpdateStatement<T>(IDbCommand cmd, IColl
590591

591592
foreach (var fieldDef in modelDef.FieldDefinitions)
592593
{
593-
if (fieldDef.IsComputed)
594+
if (fieldDef.ShouldSkipUpdate())
594595
continue;
595596

596597
try
@@ -660,7 +661,7 @@ public virtual bool PrepareParameterizedDeleteStatement<T>(IDbCommand cmd, IColl
660661

661662
foreach (var fieldDef in modelDef.FieldDefinitions)
662663
{
663-
if (fieldDef.IsComputed)
664+
if (fieldDef.ShouldSkipDelete())
664665
continue;
665666

666667
if (!fieldDef.IsRowVersion && (hasSpecificFilter && !deleteFields.Contains(fieldDef.Name)))
@@ -814,7 +815,8 @@ public virtual string ToUpdateRowStatement(object objWithProperties, ICollection
814815

815816
foreach (var fieldDef in modelDef.FieldDefinitions)
816817
{
817-
if (fieldDef.IsComputed) continue;
818+
if (fieldDef.ShouldSkipUpdate())
819+
continue;
818820

819821
try
820822
{
@@ -856,6 +858,9 @@ public virtual string ToDeleteRowStatement(object objWithProperties)
856858

857859
foreach (var fieldDef in modelDef.FieldDefinitions)
858860
{
861+
if (fieldDef.ShouldSkipDelete())
862+
continue;
863+
859864
try
860865
{
861866
if (fieldDef.IsPrimaryKey)

0 commit comments

Comments
 (0)