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

Commit f06100c

Browse files
committed
Merge remote-tracking branch 'refs/remotes/ServiceStack/master'
2 parents e507e1e + e862b64 commit f06100c

File tree

3 files changed

+62
-9
lines changed

3 files changed

+62
-9
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ The `UpdateAdd` API provides several Typed API's for updating existing values:
413413
db.UpdateAdd(() => new Person { Score = 3 });
414414

415415
//Remove 5 points from Jackson Score
416-
db.UpdateAdd(() => new Person { Score = -5 }, x => where: x.LastName == "Jackson");
416+
db.UpdateAdd(() => new Person { Score = -5 }, where: x => x.LastName == "Jackson");
417417

418418
//Graduate everyone and increase everyone's Score by 2 points
419419
db.UpdateAdd(() => new Person { Points = 2, Graduated = true });

src/ServiceStack.OrmLite/OrmLiteWriteCommandExtensions.cs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -287,11 +287,11 @@ public static T PopulateWithSqlReader<T>(this T objWithProperties,
287287
IOrmLiteDialectProvider dialectProvider, IDataReader reader,
288288
Tuple<FieldDefinition, int, IOrmLiteConverter>[] indexCache, object[] values)
289289
{
290-
try
291-
{
292-
values = PopulateValues(reader, values, dialectProvider);
290+
values = PopulateValues(reader, values, dialectProvider);
293291

294-
foreach (var fieldCache in indexCache)
292+
foreach (var fieldCache in indexCache)
293+
{
294+
try
295295
{
296296
var fieldDef = fieldCache.Item1;
297297
var index = fieldCache.Item2;
@@ -331,11 +331,12 @@ public static T PopulateWithSqlReader<T>(this T objWithProperties,
331331
}
332332
}
333333
}
334+
catch (Exception ex)
335+
{
336+
OrmLiteUtils.HandleException(ex);
337+
}
334338
}
335-
catch (Exception ex)
336-
{
337-
OrmLiteUtils.HandleException(ex);
338-
}
339+
339340
return objWithProperties;
340341
}
341342

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
using System;
2+
using NUnit.Framework;
3+
using ServiceStack.DataAnnotations;
4+
5+
namespace ServiceStack.OrmLite.Tests.Issues
6+
{
7+
public class MappingFieldIssues : OrmLiteTestBase
8+
{
9+
public MappingFieldIssues() : base(Dialect.SqlServer) {}
10+
11+
public class OriginalTable
12+
{
13+
public int Id { get; set; }
14+
public DateTime SaleDate { get; set; }
15+
public TimeSpan SaleTime { get; set; }
16+
public int NumberOfItems { get; set; }
17+
public decimal Amount { get; set; }
18+
}
19+
20+
[Alias("OriginalTable")]
21+
public class MismatchTable
22+
{
23+
public int Id { get; set; }
24+
public DateTime SaleDate { get; set; }
25+
public DateTime SaleTime { get; set; }
26+
public int NumberOfItems { get; set; }
27+
public decimal Amount { get; set; }
28+
}
29+
30+
[Test]
31+
public void Does_map_remaining_columns_after_failed_mapping()
32+
{
33+
using (var db = OpenDbConnection())
34+
{
35+
db.DropAndCreateTable<OriginalTable>();
36+
db.Insert(new OriginalTable
37+
{
38+
Id = 1,
39+
SaleDate = new DateTime(2001, 01, 01),
40+
SaleTime = new TimeSpan(1,1,1,1),
41+
NumberOfItems = 2,
42+
Amount = 3
43+
});
44+
45+
var result = db.SingleById<MismatchTable>(1);
46+
Assert.That(result.NumberOfItems, Is.EqualTo(2));
47+
Assert.That(result.Amount, Is.EqualTo(3));
48+
}
49+
}
50+
51+
}
52+
}

0 commit comments

Comments
 (0)