Как изменить масштаб по умолчанию и точность десятичных знаков в Fluent NHibernate? - PullRequest
8 голосов
/ 25 марта 2011

В приложении, которое я создаю, у меня есть много десятичных полей с определенной точностью и масштабом, которые необходимо отобразить из базы данных.Я могу добиться этого, используя методы Precision() и Scale():

public class ClassAMap : ClassMap<ClassA>
{
    public ClassAMap ()
    {
        Map(x => x.Value).Precision(22).Scale(12);
    }
}

Есть ли способ изменить точность и масштаб по умолчанию для десятичных чисел, поэтому мне не нужно добавлятьвызовы Precision() и Scale() для каждого сопоставленного десятичного числа?

1 Ответ

13 голосов
/ 25 марта 2011

Вы можете определить PropertyConvention. Ниже приводится общая идея. (НЕ проверено)

public class DecimalConvention : IPropertyConvention
    {
        public void Apply(IPropertyInstance instance)
        {
            if (instance.Type == typeof(decimal) || instance.Name == "Value") //Set the condition based on your needs
            {
               instance.Precision(22).Scale(12);    
            }
        }
    }

Убедитесь, что вы включили это соглашение, когда настроен Fluent.

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