1

我通过代码使用 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。

4

2 回答 2

0

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

现在的解决方法是在数据库中使用真实类型:

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# 属性仍然是十进制。

于 2013-06-18T12:35:50.807 回答
0

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

于 2017-10-03T05:10:22.010 回答