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

Commit 7c9acc6

Browse files
committed
Add DeleteNonDefaults Test and AllFieldsMap helper
1 parent 32871db commit 7c9acc6

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

src/ServiceStack.OrmLite/OrmLiteReadCommandExtensions.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,13 @@ internal static List<string> AllFields<T>(this object anonType)
207207
return ret;
208208
}
209209

210+
internal static Dictionary<string, object> AllFieldsMap<T>(this object anonType)
211+
{
212+
var ret = new Dictionary<string, object>();
213+
ForEachParam<T>(anonType, excludeDefaults: false, fn: (pi, columnName, value) => ret[pi.Name] = value);
214+
return ret;
215+
}
216+
210217
internal static List<string> NonDefaultFields<T>(this object anonType)
211218
{
212219
var ret = new List<string>();

tests/ServiceStack.OrmLite.Tests/OrmLiteDeleteTests.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.Linq;
55
using NUnit.Framework;
66
using ServiceStack.Common.Tests.Models;
7+
using ServiceStack.Text;
78

89
namespace ServiceStack.OrmLite.Tests
910
{
@@ -123,5 +124,25 @@ public void Can_delete_with_tableName_and_optional_string_params()
123124
Assert.That(dbRow, Is.Null);
124125
}
125126

127+
[Test]
128+
public void Can_delete_entity_with_nullable_DateTime()
129+
{
130+
db.DropAndCreateTable<ModelWithFieldsOfNullableTypes>();
131+
132+
var row = ModelWithFieldsOfNullableTypes.Create(1);
133+
row.NDateTime = null;
134+
135+
db.Save(row);
136+
137+
row = db.SingleById<ModelWithFieldsOfNullableTypes>(row.Id);
138+
139+
var rowsAffected = db.DeleteNonDefaults(row);
140+
141+
Assert.That(rowsAffected, Is.EqualTo(1));
142+
143+
row = db.SingleById<ModelWithFieldsOfNullableTypes>(row.Id);
144+
Assert.That(row, Is.Null);
145+
}
146+
126147
}
127148
}

0 commit comments

Comments
 (0)