C#float,NHibernate,SQL Server 2012错误列类型发现实际预期的浮点数

时间:2013-03-15 14:14:25

标签: nhibernate sql-server-2012

将SQL Server 2012与浮动列一起使用我的问题类似于NHibernate: Wrong column type: found float, expected double precision,但对于C#单一问题。但是,如果我在自定义方言中将列类型注册为FLOAT(24),我会得到`Found:float,Expected REAL'。

简而言之,如果我没有RegisterColumnType它找到float并想要REAL,如果我RegisterColumnType它找到了真实并希望浮动。

有没有人见过这个问题并且能够修复它?

1 个答案:

答案 0 :(得分:1)

在测试数据库上查看NHibernate生成的模式并阅读SQL服务器文档后,找到了我的问题的答案。

我的本​​地数据库有一个类型为real的列,生产数据库有一个类型为float的列。 realFLOAT(24),而float(据我从文档中理解)实际上是FLOAT(53)。这意味着C#类型应为double,这意味着链接的问题将回答如何处理它。决定将数据库列更改为real,然后在没有任何方言修改的情况下工作。