C# Nhibernate浮点问题与c中的sql浮点#

C# Nhibernate浮点问题与c中的sql浮点#,c#,sql-server-2008,nhibernate,floating-point,C#,Sql Server 2008,Nhibernate,Floating Point,我在一个映射到Nhibernate的sql表中有一个可为null的float列。定义了此表类的属性: public virtual float? floatColumn { get; set; } 我有另一个班,有 public float? anotherFloatPrprty { get; set; } 我得到这个错误 无法将System.Double类型分配给System.Nullable`1[System.Single]类型的MyProject setter属性 使用以下会话查询 v

我在一个映射到Nhibernate的sql表中有一个可为null的float列。定义了此表类的属性:

public virtual float? floatColumn { get; set; }
我有另一个班,有

public float? anotherFloatPrprty { get; set; }
我得到这个错误

无法将System.Double类型分配给System.Nullable`1[System.Single]类型的MyProject setter属性

使用以下会话查询

var j = session.CreateSQLQuery("SELECT floatColumn As anotherFloatPrprty from myTable")
因此,我更改了表,使该列不为null,但仍然出现以下错误

{“System.Double”类型的对象无法转换为“System.Single”类型

显然,当我在floatColumn中没有任何值时,我不会得到任何异常,但一旦将一些值插入到表中(范围从0.01到1),我就会得到这些异常


如何在Nhibernate中正确映射可空浮点值在这种情况下,SQL关键字
float
C#关键字
float
令人困惑。因为他们不匹配

如文件所述:

同时检查:

摘要:使用
double

public virtual double? floatColumn { get; set; }

谢谢你,拉迪姆。我已经阅读了很多关于这个问题的文件。似乎我除了将sql列更改为double之外别无选择。你的意思是更改C#映射吗?加倍?这对我来说是有道理的。真正地我会说这不应该是一个iseue,对吧?无论如何祝你好运。伟大的工具;)是的,半径。我将映射更改为double,它成功了。虽然我不确定是否应该将sql表更改为double。目前我还没有改变它,很高兴看到它正在工作。SQL server端的精度主要取决于您的业务需求、权限。如果此列包含百分比。。。浮动(24)就可以了。而且,双人房占用的空间是单人房的两倍。但这些都是“调整”,你以后仍然可以调整。现在,通过NHibernate的连接正在工作。。。太好了;)
public virtual double? floatColumn { get; set; }