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

Commit 19af269

Browse files
committed
Merge pull request #439 from BruceCowan-AI/FixCompactGuid
Fix compact guid option in Oracle provider to do searches correctly
2 parents 54f2ece + 3a53d5e commit 19af269

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

src/ServiceStack.OrmLite.Oracle/OracleOrmLiteDialectProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ public override string GetQuotedValue(object value, Type fieldType)
238238
if (fieldType == typeof(Guid))
239239
{
240240
var guid = (Guid)value;
241-
return CompactGuid ? "'" + BitConverter.ToString(guid.ToByteArray()).Replace("-", "") + "'"
241+
return CompactGuid ? string.Format("CAST('{0}' AS {1})", BitConverter.ToString(guid.ToByteArray()).Replace("-", ""), CompactGuidDefinition)
242242
: string.Format("CAST('{0}' AS {1})", guid, StringGuidDefinition);
243243
}
244244

tests/ServiceStack.OrmLite.Tests/OrmLiteCreateTableTests.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,12 @@ public void Can_handle_table_with_Guid()
189189
newModel = db.Single<ModelWithGuid>(q => q.Guid == models[0].Guid);
190190

191191
Assert.That(newModel.Guid, Is.EqualTo(models[0].Guid));
192+
193+
var newGuid = Guid.NewGuid();
194+
db.Update(new ModelWithGuid {Id = models[0].Id, Guid = newGuid});
195+
db.GetLastSql().Print();
196+
newModel = db.Single<ModelWithGuid>(q => q.Id == models[0].Id);
197+
Assert.That(newModel.Guid, Is.EqualTo(newGuid));
192198
}
193199
}
194200

@@ -210,12 +216,16 @@ public void Can_handle_table_with_non_conventional_id()
210216

211217
db.GetLastSql().Print();
212218

213-
db.Insert(new ModelWithOddIds { Id = 1, Guid = Guid.NewGuid() });
219+
var guid1 = Guid.NewGuid();
220+
db.Insert(new ModelWithOddIds { Id = 1, Guid = guid1 });
214221
db.Insert(new ModelWithOddIds { Id = 1, Guid = Guid.NewGuid() });
215222

216223
var rows = db.Select<ModelWithOddIds>(q => q.Id == 1);
217224

218225
Assert.That(rows.Count, Is.EqualTo(2));
226+
227+
rows = db.Select<ModelWithOddIds>(q => q.Guid == guid1);
228+
Assert.That(rows, Has.Count.EqualTo(1));
219229
}
220230
}
221231

0 commit comments

Comments
 (0)