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

Commit 3194780

Browse files
committed
Insert default value for null RowVersion values
1 parent 1736102 commit 3194780

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed

src/ServiceStack.OrmLite/OrmLiteWriteCommandExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1146,7 +1146,7 @@ internal static object GetRowVersion(this IDbCommand dbCmd, ModelDefinition mode
11461146
if (to is ulong u && modelDef.RowVersion.ColumnType == typeof(byte[]))
11471147
return BitConverter.GetBytes(u);
11481148

1149-
return to;
1149+
return to ?? modelDef.RowVersion.ColumnType.GetDefaultValue();
11501150
}
11511151

11521152
internal static string RowVersionSql(this IDbCommand dbCmd, ModelDefinition modelDef, object id)

tests/ServiceStack.OrmLite.Tests/RowVersionTests.cs

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Collections.Generic;
1+
using System;
2+
using System.Collections.Generic;
23
using System.Data;
34
using System.Linq;
45
using System.Threading.Tasks;
@@ -233,6 +234,32 @@ public async Task Can_Save_new_row_and_retrieve_rowversion_Async()
233234
var actualRow = await db.SingleByIdAsync<ModelWithRowVersion>(row.Id);
234235
Assert.That(row.RowVersion, Is.EqualTo(actualRow.RowVersion));
235236
}
237+
238+
public class ModelWithAutoGuidAndRowVersion
239+
{
240+
[AutoId]
241+
public Guid Id { get; set; }
242+
public string Name { get; set; }
243+
public ulong RowVersion { get; set; }
244+
}
245+
246+
[Test]
247+
public void Can_Save_ModelWithAutoGuidAndRowVersion()
248+
{
249+
db.DropAndCreateTable<ModelWithAutoGuidAndRowVersion>();
250+
var row = new ModelWithAutoGuidAndRowVersion { Name = "A" };
251+
252+
Assert.That(db.Save(row));
253+
254+
var dbRow = db.SingleById<ModelWithAutoGuidAndRowVersion>(row.Id);
255+
Assert.That(dbRow.Name, Is.EqualTo(row.Name));
256+
257+
dbRow.Name = "B";
258+
db.Save(dbRow);
259+
260+
dbRow = db.SingleById<ModelWithAutoGuidAndRowVersion>(row.Id);
261+
Assert.That(dbRow.Name, Is.EqualTo("B"));
262+
}
236263

237264
[Test]
238265
public void Can_SaveAll_new_rows_and_retrieve_rowversion()

0 commit comments

Comments
 (0)