Невозможно установить точность и масштаб в десятичном формате при создании таблицы 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# по-прежнему десятичные.