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

Commit 9e512a9

Browse files
author
TroyDycavinu-AI
committed
OracleProviderBugFixes
- Move static methods into extensions class
1 parent 3814eb7 commit 9e512a9

File tree

7 files changed

+46
-46
lines changed

7 files changed

+46
-46
lines changed

src/ServiceStack.OrmLite.Oracle/OracleOrmLiteDialectProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ public override long InsertAndGetLastInsertId<T>(IDbCommand dbCmd)
167167

168168
public override void SetDbValue(FieldDefinition fieldDef, IDataReader reader, int colIndex, object instance)
169169
{
170-
if (HandledDbNullValue(fieldDef, reader, colIndex, instance)) return;
170+
if (OrmLiteDialectProviderExtensions.HandledDbNullValue(fieldDef, reader, colIndex, instance)) return;
171171

172172
var value = reader.GetValue(colIndex);
173173
var convertedValue = ConvertDbValue(value, fieldDef.FieldType);

src/ServiceStack.OrmLite.SqlServer/SqlServerOrmLiteDialectProvider.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public override void SetDbValue(FieldDefinition fieldDef, IDataReader reader, in
109109
var bytes = reader.GetValue(colIndex) as byte[];
110110
if (bytes != null)
111111
{
112-
var ulongValue = ConvertToULong(bytes);
112+
var ulongValue = OrmLiteDialectProviderExtensions.ConvertToULong(bytes);
113113
try
114114
{
115115
fieldDef.SetValueFn(instance, ulongValue);
@@ -281,7 +281,7 @@ public override string GetDropForeignKeyConstraints(ModelDefinition modelDef)
281281
{
282282
var foreignKeyName = fieldDef.ForeignKey.GetForeignKeyName(
283283
modelDef,
284-
GetModelDefinition(fieldDef.ForeignKey.ReferenceType),
284+
OrmLiteDialectProviderExtensions.GetModelDefinition(fieldDef.ForeignKey.ReferenceType),
285285
NamingStrategy,
286286
fieldDef);
287287

src/ServiceStack.OrmLite.Sqlite/SqliteOrmLiteDialectProviderBase.cs

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

166166
public override void SetDbValue(FieldDefinition fieldDef, IDataReader reader, int colIndex, object instance)
167167
{
168-
if (HandledDbNullValue(fieldDef, reader, colIndex, instance)) return;
168+
if (OrmLiteDialectProviderExtensions.HandledDbNullValue(fieldDef, reader, colIndex, instance)) return;
169169

170170
var fieldType = Nullable.GetUnderlyingType(fieldDef.FieldType) ?? fieldDef.FieldType;
171171
if (fieldType == typeof(Guid))

src/ServiceStack.OrmLite.VistaDB/VistaDbDialectProvider.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public override IDbConnection CreateConnection(string connectionString, Dictiona
9898

9999
public override string ToCreateTableStatement(Type tableType)
100100
{
101-
var modelDefinition = GetModelDefinition(tableType);
101+
var modelDefinition = OrmLiteDialectProviderExtensions.GetModelDefinition(tableType);
102102
var quotedTableName = this.GetQuotedTableName(modelDefinition);
103103

104104
var columns = new StringBuilder();
@@ -132,7 +132,7 @@ public override string ToCreateTableStatement(Type tableType)
132132
}
133133
else if (fd.ForeignKey != null)
134134
{
135-
var foreignModelDefinition = GetModelDefinition(fd.ForeignKey.ReferenceType);
135+
var foreignModelDefinition = OrmLiteDialectProviderExtensions.GetModelDefinition(fd.ForeignKey.ReferenceType);
136136
constraints.AppendFormat("ALTER TABLE {0} ADD CONSTRAINT {1} FOREIGN KEY ({2}) REFERENCES {3} ({4}){5}{6};\n",
137137
quotedTableName,
138138
this.GetQuotedName(fd.ForeignKey.GetForeignKeyName(modelDefinition, foreignModelDefinition, this.NamingStrategy, fd)),
@@ -359,7 +359,7 @@ public override string GetDropForeignKeyConstraints(ModelDefinition modelDef)
359359
{
360360
var foreignKeyName = fieldDef.ForeignKey.GetForeignKeyName(
361361
modelDef,
362-
GetModelDefinition(fieldDef.ForeignKey.ReferenceType),
362+
OrmLiteDialectProviderExtensions.GetModelDefinition(fieldDef.ForeignKey.ReferenceType),
363363
NamingStrategy,
364364
fieldDef);
365365

src/ServiceStack.OrmLite/OrmLiteDialectProviderBase.cs

Lines changed: 3 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -24,43 +24,8 @@
2424

2525
namespace ServiceStack.OrmLite
2626
{
27-
public abstract class OrmLiteDialectProviderBase
28-
{
29-
protected const int NotFound = -1;
30-
31-
public static ModelDefinition GetModelDefinition(Type modelType)
32-
{
33-
return modelType.GetModelDefinition();
34-
}
35-
36-
public static bool HandledDbNullValue(FieldDefinition fieldDef, IDataReader dataReader, int colIndex, object instance)
37-
{
38-
if (fieldDef == null || fieldDef.SetValueFn == null || colIndex == NotFound) return true;
39-
if (dataReader.IsDBNull(colIndex))
40-
{
41-
if (fieldDef.IsNullable)
42-
{
43-
fieldDef.SetValueFn(instance, null);
44-
}
45-
else
46-
{
47-
fieldDef.SetValueFn(instance, fieldDef.FieldType.GetDefaultValue());
48-
}
49-
return true;
50-
}
51-
return false;
52-
}
53-
54-
public static ulong ConvertToULong(byte[] bytes)
55-
{
56-
Array.Reverse(bytes); //Correct Endianness
57-
var ulongValue = BitConverter.ToUInt64(bytes, 0);
58-
return ulongValue;
59-
}
60-
}
61-
6227
public abstract class OrmLiteDialectProviderBase<TDialect>
63-
: OrmLiteDialectProviderBase, IOrmLiteDialectProvider
28+
: IOrmLiteDialectProvider
6429
where TDialect : IOrmLiteDialectProvider
6530
{
6631
protected static readonly ILog Log = LogManager.GetLogger(typeof(IOrmLiteDialectProvider));
@@ -303,7 +268,7 @@ public virtual bool ShouldQuoteValue(Type fieldType)
303268
/// </summary>
304269
public virtual void SetDbValue(FieldDefinition fieldDef, IDataReader reader, int colIndex, object instance)
305270
{
306-
if (HandledDbNullValue(fieldDef, reader, colIndex, instance)) return;
271+
if (OrmLiteDialectProviderExtensions.HandledDbNullValue(fieldDef, reader, colIndex, instance)) return;
307272

308273
var convertedValue = ConvertDbValue(reader.GetValue(colIndex), fieldDef.FieldType);
309274
try
@@ -1318,7 +1283,7 @@ public virtual object ConvertDbValue(object value, Type type)
13181283
return value;
13191284
var byteValue = value as byte[];
13201285
if (byteValue != null)
1321-
return ConvertToULong(byteValue);
1286+
return OrmLiteDialectProviderExtensions.ConvertToULong(byteValue);
13221287
return Convert.ToUInt64(value);
13231288
case TypeCode.Single:
13241289
return value is float ? value : Convert.ToSingle(value);

src/ServiceStack.OrmLite/OrmLiteDialectProviderExtensions.cs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
using System;
2+
using System.Data;
3+
14
namespace ServiceStack.OrmLite
25
{
36
public static class OrmLiteDialectProviderExtensions
@@ -48,5 +51,37 @@ public static string GetQuotedColumnName(this IOrmLiteDialectProvider dialect,
4851
"." +
4952
dialect.GetQuotedColumnName(fieldName);
5053
}
54+
55+
private const int NotFound = -1;
56+
57+
public static ModelDefinition GetModelDefinition(Type modelType)
58+
{
59+
return modelType.GetModelDefinition();
60+
}
61+
62+
public static bool HandledDbNullValue(FieldDefinition fieldDef, IDataReader dataReader, int colIndex, object instance)
63+
{
64+
if (fieldDef == null || fieldDef.SetValueFn == null || colIndex == NotFound) return true;
65+
if (dataReader.IsDBNull(colIndex))
66+
{
67+
if (fieldDef.IsNullable)
68+
{
69+
fieldDef.SetValueFn(instance, null);
70+
}
71+
else
72+
{
73+
fieldDef.SetValueFn(instance, fieldDef.FieldType.GetDefaultValue());
74+
}
75+
return true;
76+
}
77+
return false;
78+
}
79+
80+
public static ulong ConvertToULong(byte[] bytes)
81+
{
82+
Array.Reverse(bytes); //Correct Endianness
83+
var ulongValue = BitConverter.ToUInt64(bytes, 0);
84+
return ulongValue;
85+
}
5186
}
5287
}

tests/ServiceStack.OrmLite.Tests/Issues/MismatchSchemaTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public void Can_change_schema_at_runtime()
8080
using (var captured = new CaptureSqlFilter())
8181
using (var db = OpenDbConnection())
8282
{
83-
var modelDef = OrmLiteDialectProviderBase.GetModelDefinition(typeof(Poco));
83+
var modelDef = OrmLiteDialectProviderExtensions.GetModelDefinition(typeof(Poco));
8484

8585
db.SingleById<Poco>(1);
8686

0 commit comments

Comments
 (0)