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

Commit 0ff1111

Browse files
authored
Extract SetParameterSize method (#655)
* Create parameter with DBNull.Value for null values in OrmLiteReadCommandExtensions (#635) * Create parameter with DBNull.Value for null values in OrmLiteReadCommandExtensions (#635) (#30) * UnsafeGroupBy * Extract SetParameterSize method * Remove generic argument in SetParameterValue method
1 parent c94dc11 commit 0ff1111

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

src/ServiceStack.OrmLite.PostgreSQL/PostgreSQLDialectProvider.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -695,15 +695,15 @@ public override void SetParameter(FieldDefinition fieldDef, IDbDataParameter p)
695695

696696
public virtual bool UseRawValue(string columnDef) => columnDef?.EndsWith("[]") == true;
697697

698-
protected override object GetValue<T>(FieldDefinition fieldDef, object obj)
698+
protected override object GetValue(FieldDefinition fieldDef, object obj)
699699
{
700700
if (fieldDef.CustomFieldDefinition != null && NativeTypes.ContainsKey(fieldDef.CustomFieldDefinition)
701701
&& UseRawValue(fieldDef.CustomFieldDefinition))
702702
{
703703
return fieldDef.GetValue(obj);
704704
}
705705

706-
return base.GetValue<T>(fieldDef, obj);
706+
return base.GetValue(fieldDef, obj);
707707
}
708708

709709
public override void PrepareStoredProcedureStatement<T>(IDbCommand cmd, T obj)

src/ServiceStack.OrmLite/OrmLiteDialectProviderBase.cs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -977,7 +977,7 @@ public virtual void SetParameterValues<T>(IDbCommand dbCmd, object obj)
977977
continue;
978978
}
979979

980-
SetParameterValue<T>(fieldDef, p, obj);
980+
SetParameterValue(fieldDef, p, obj);
981981
}
982982
}
983983

@@ -986,19 +986,24 @@ public Dictionary<string, FieldDefinition> GetFieldDefinitionMap(ModelDefinition
986986
return modelDef.GetFieldDefinitionMap(SanitizeFieldNameForParamName);
987987
}
988988

989-
public virtual void SetParameterValue<T>(FieldDefinition fieldDef, IDataParameter p, object obj)
989+
public virtual void SetParameterValue(FieldDefinition fieldDef, IDataParameter p, object obj)
990990
{
991-
var value = GetValueOrDbNull<T>(fieldDef, obj);
991+
var value = GetValueOrDbNull(fieldDef, obj);
992992
p.Value = value;
993993

994+
SetParameterSize(fieldDef, p);
995+
}
996+
997+
protected virtual void SetParameterSize(FieldDefinition fieldDef, IDataParameter p)
998+
{
994999
if (p.Value is string s && p is IDbDataParameter dataParam && dataParam.Size > 0 && s.Length > dataParam.Size)
9951000
{
9961001
// db param Size set in StringConverter
9971002
dataParam.Size = s.Length;
9981003
}
9991004
}
10001005

1001-
protected virtual object GetValue<T>(FieldDefinition fieldDef, object obj)
1006+
protected virtual object GetValue(FieldDefinition fieldDef, object obj)
10021007
{
10031008
return GetFieldValue(fieldDef, fieldDef.GetValue(obj));
10041009
}
@@ -1037,9 +1042,9 @@ public object GetFieldValue(Type fieldType, object value)
10371042
}
10381043
}
10391044

1040-
protected virtual object GetValueOrDbNull<T>(FieldDefinition fieldDef, object obj)
1045+
protected virtual object GetValueOrDbNull(FieldDefinition fieldDef, object obj)
10411046
{
1042-
var value = GetValue<T>(fieldDef, obj);
1047+
var value = GetValue(fieldDef, obj);
10431048
if (value == null)
10441049
return DBNull.Value;
10451050

0 commit comments

Comments
 (0)