Skip to content

Commit bea8467

Browse files
committed
BugFix: Scalar result parser now handles nullable primitives
1 parent e15082f commit bea8467

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

src/OpenPerpetuum.Core.DataServices/Database/ResultSet.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,12 @@ public void AddData(int rowNumber, DataRowObject dataRow)
7171

7272
private TResultObject ParseScalarResult(object value)
7373
{
74-
TResultObject resultObject = (TResultObject)Convert.ChangeType(value, typeof(TResultObject));
74+
object tempVal = value == DBNull.Value ? null : value;
75+
Type resultType = Nullable.GetUnderlyingType(typeof(TResultObject)) ?? typeof(TResultObject);
7576

76-
return resultObject;
77+
object safeObject = (tempVal == null) ? null : Convert.ChangeType(tempVal, resultType);
78+
79+
return (TResultObject)safeObject;
7780
}
7881

7982
private TResultObject ParseObjectResult<TDataObject>(DataRowObject dataRow)

0 commit comments

Comments
 (0)