Как избавиться от 'свойство не может быть установлено в двойное значение, вы должны установить для этого свойства ненулевое значение типа decimal' - PullRequest
3 голосов
/ 28 июля 2011

Я пытаюсь заставить импорт функций работать правильно. EF вызывает мою хранимую процедуру, но у результата есть внутреннее исключение, которое я не понимаю:

var result = context.SomeFunctionImport();

Я получаю:

Свойство 'Cnt' в 'SomeClass' не может быть установлено в 'Double' значение. Вы должны установить для этого свойства ненулевое значение типа 'Десятичная'.

Вот свойство Cnt в SomeClass:

    [DataMember]
    public Nullable<decimal> Cnt
    {
        get { return _cnt; }
        set
        {
            if (_cnt != value)
            {
                OnComplexPropertyChanging();
                _cnt = value;
                OnPropertyChanged("Cnt");
            }
        }
    }
    private Nullable<decimal> _cnt;

Ответы [ 4 ]

2 голосов
/ 08 января 2014

Я думаю, что это поле типа float в вашей таблице базы данных.так что вам нужно установить его в два раза?если это поле можно обнулять или иным образом использовать double

public double? field_name {get; set}
// or 
public double field_name {get; set}

Это работает для меня

2 голосов
/ 28 июля 2011

Нашел проблему. В моей хранимой процедуре отсутствовало приведение Cnt после операции округления.

2 голосов
/ 28 июля 2011

Вы должны определить это так: public decimal Cnt

0 голосов
/ 21 марта 2013

У меня была эта проблема, и моя проблема заключалась в том, что на БД тип был реальным, а в классе EF был объявлен как десятичный. Я просто изменил тип БД на реальный и проблема решена.

...