1

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

简而言之,如果我不这样做RegisterColumnType,它就会找到float并想要REAL,如果我这样做RegisterColumnType,它就会发现真实并想要浮动。

有没有人看到这个问题并能够解决它?

4

1 回答 1

1

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

我的本地数据库有一列类型real,生产数据库有一列类型floatrealFLOAT(24), 而float(据我从文档中了解到)实际上是FLOAT(53). 这意味着 C# 类型应该是double,这意味着链接的问题回答了如何处理它。决定将数据库列更改为real,之后它无需任何方言修改即可工作。

于 2013-03-18T11:14:05.640 回答