2010-01-14 56 views
0

以后编辑:这是我:(这是一个非空列未被填充对不起大家我糊涂..NHibernate数字格式问题 - 我在哪里设置文化?

我有由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 

正如你可以看到有作为小数点分隔符,其搞砸了的参数值列表逗号

我没有任何地方发现通向 设置用于格式化数字的文化,以便语句以有效的形式生成。

我设置Thread.CurrentCulture和CurrentUICulture在ISession的Save方法调用之前立即进入,但什么也没有发生。

可以做些什么? :(

回答

2

但此列表格式的数字仅用于显示的目的。 - 值被设置为参数设置为浮点数这应该不会引起INSERT以任何方式失败

是你只是预计有问题,或者你实际上是否收到错误?如果你收到错误,是什么?

+0

这个查询在SQL Server Profiler中被拦截,它是实际发送的查询 – 2010-01-14 12:20:42

+0

是的,但是它是一个参数化的查询,并且参数值被写出的地方被格式化,但是它们被设置的地方被设置为本地浮点值秒。 – 2010-01-14 12:41:57

+0

呃实际上报告完全没有报告这个问题。 – 2010-01-14 12:50:13