NHibernate数字格式问题 - 我在哪里设置文化?

时间:2010-01-14 11:09:59

标签: nhibernate fluent-nhibernate formatting numbers culture

LATER EDIT:这是我:(这是一个不可空的专栏,没有填充。对不起我很困惑的每个人..

我遇到了NHibernate生成的INSERT语句的问题,因为它使用区域设置格式化十进制数。生成的语句类似于:

exec sp_executesql N'INSERT INTO [TableName] (
    Column1, 
    Column2, 
    Column3, 
    Column4, 
    Column5, 
    Column6, 
    Column7, 
    Column8, 
    Column9, 
    Column10) 
VALUES (@p0, 
    @p1, 
    @p2, 
    @p3, 
    @p4, 
    @p5, 
    @p6, 
    @p7, 
    @p8, 
    @p9); 

select SCOPE_IDENTITY()',

N'@p0 float,@p1 float,@p2 float,@p3 float,@p4 int,@p5 datetime,@p6 nvarchar(69),@p7 int,@p8 int,@p9 int',
@p0=0,
@p1=0,
@p2=589186,74188329,           -- <-- here is my problem
@p3=320829,21535209997,        -- <-- here is my problem
@p4=6,
@p5='2009-05-10 17:00:00',
@p6=N'Some string value',
@p7=232323,
@p8=2,
@p9=1

正如您所看到的,有一个逗号用作小数分隔符,它会搞砸参数值列表。

我没有找到任何方法来设置用于格式化数字的文化,因此语句将以有效的形式生成。

我在ISession上的Save方法调用之前将Thread.CurrentCulture和CurrentUICulture设置为en-us但没有任何反应。

可以做些什么? :(

1 个答案:

答案 0 :(得分:2)

但是这个带有格式化数字的列表仅用于显示目的 - 设置为参数的值被设置为浮点数。这不应该导致INSERT以任何方式失败。

您是否只是预期问题,或者您实际上是否收到错误?如果您收到错误,那是什么?