使用NHibernate创建SQL Server CE表时,无法在十进制上设置精度和小数位数

时间:2013-06-12 09:01:59

标签: .net nhibernate sql-server-ce nhibernate-mapping

我正在使用NHibernate映射代码在服务器(SQL Server 2008)和客户端(SQL Server CE 3.5)上创建表。

这一栏

Property(x => x.Latitude, c =>
                       {
                         c.Precision(10); 
                         c.Scale(8); 
                         c.NotNullable(false);
                       });

在生成decimal(10,8)

的服务器上运行良好

但是在SQL Server CE客户端上它会生成numeric(19,0)?我在这里的映射中做错了吗?我正在使用NHibernate 3.3.2。

2 个答案:

答案 0 :(得分:0)

在NHibernate Jira跟踪器中提出了一个问题。

现在的解决方法是在DB中使用实际类型:

Property(x => x.Longitude, c =>
        {
            c.Column(x => x.SqlType("real"));
            c.NotNullable(false);
        });
        Property(x => x.Latitude, c =>
        {
            c.Column(x => x.SqlType("real"));                
            c.NotNullable(false);
        });

C#属性仍为十进制。

答案 1 :(得分:0)

此问题现已解决(NHibernate 3.3.3) 详细信息可以在这里找到: https://nhibernate.jira.com/browse/NH-2979