Невозможно установить точность и масштаб в десятичном формате при создании таблицы SQL Server CE с помощью NHibernate

Я использую сопоставление 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 ответа

Решение

Эта проблема теперь решена (NHibernate 3.3.3). Подробности можно найти здесь: https://nhibernate.jira.com/browse/NH-2979

Подал проблему для этого в трекер 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# по-прежнему десятичные.

Другие вопросы по тегам