Skip to content

Commit 995535e

Browse files
committed
Add support for BigInteger in DoubleType and SingleType
1 parent 9b6dfa7 commit 995535e

File tree

2 files changed

+22
-4
lines changed

2 files changed

+22
-4
lines changed

src/NHibernate/Type/DoubleType.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Data;
33
using System.Data.Common;
4+
using System.Numerics;
45
using NHibernate.Engine;
56
using NHibernate.SqlTypes;
67

@@ -22,12 +23,20 @@ public DoubleType(SqlType sqlType) : base(sqlType) {}
2223

2324
public override object Get(DbDataReader rs, int index, ISessionImplementor session)
2425
{
25-
return Convert.ToDouble(rs[index]);
26+
return rs[index] switch
27+
{
28+
BigInteger bi => (double) bi,
29+
var v => Convert.ToDouble(v)
30+
};
2631
}
2732

2833
public override object Get(DbDataReader rs, string name, ISessionImplementor session)
2934
{
30-
return Convert.ToDouble(rs[name]);
35+
return rs[name] switch
36+
{
37+
BigInteger bi => (double) bi,
38+
var v => Convert.ToDouble(v)
39+
};
3140
}
3241

3342
/// <summary></summary>

src/NHibernate/Type/SingleType.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Data;
33
using System.Data.Common;
4+
using System.Numerics;
45
using NHibernate.Engine;
56
using NHibernate.SqlTypes;
67

@@ -35,7 +36,11 @@ public override object Get(DbDataReader rs, int index, ISessionImplementor sessi
3536
{
3637
try
3738
{
38-
return Convert.ToSingle(rs[index]);
39+
return rs[index] switch
40+
{
41+
BigInteger bi => (float) bi,
42+
var v => Convert.ToSingle(v)
43+
};
3944
}
4045
catch (Exception ex)
4146
{
@@ -47,7 +52,11 @@ public override object Get(DbDataReader rs, string name, ISessionImplementor ses
4752
{
4853
try
4954
{
50-
return Convert.ToSingle(rs[name]);
55+
return rs[name] switch
56+
{
57+
BigInteger bi => (float) bi,
58+
var v => Convert.ToSingle(v)
59+
};
5160
}
5261
catch (Exception ex)
5362
{

0 commit comments

Comments
 (0)