Проблема с Fluent nhibernate и типом Decimal - PullRequest
2 голосов
/ 14 декабря 2010

Я приветствую проблему с десятичным типом и свободным nhibernate.

Вот моя проблема:

У меня есть класс со свойством:

public virtual decimal? Amount { get; set; }

В моем отображении у меня есть:

Map(x => x.Amount, "SOMETHING").Length(8).Precision(19).Scale(4).CustomSqlType("money"); 

Отображение Nhibernate, которое я получаю:

<property name="Amount" type="System.Nullable`1[[System.Decimal, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
  <column name="SOMETHING" length="8" sql-type="money" precision="19" scale="4" />
</property>

И что я получаю, когда пытаюсь обновить это значение с помощью сервера SQL 2000, это:

Disallowed implicit conversion from data type varchar to data type money, table 'ANYTABLE, column '...'. Use the CONVERT function to run this query.

Я использую MsSqlConfiguration.MsSql2000 для настройки беглого спящего режима и беглого nhibernate версии 1.1.0.0.

Спасибо за вашу помощь!

Ответы [ 3 ]

1 голос
/ 14 декабря 2010

Я забыл сказать, проблема в том, что в сгенерированном запросе у меня есть:

UPDATE [A_TABLE]
SET    ....
   AMOUNT = '6118,2200' /* @p1_0 */,
   ....

, и оно должно быть

   AMOUNT = 6118.22

Я также использую NH3.

0 голосов
/ 14 декабря 2010

Может быть, длина атрибута мешает.Унеси это.Только строки имеют длину.

0 голосов
/ 14 декабря 2010

Здесь прекрасно работает, по крайней мере, с NH 3.

Как вы обновляете значение?Можете ли вы опубликовать сгенерированный SQL?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...