Я получаю сообщение об ошибках из производственной системы. У меня нет свободного доступа к производственной системе. Я получу все данные, которые мне нужны для этого в должное время, но я пытаюсь ускорить процесс решения этой проблемы. Я пытаюсь устранить как можно больше догадок.
Ошибка, которую я получаю это:
Расширенные свойства: исключение - System.InvalidOperationException:
приведение к типу значения 'Десятичный' не удалось
потому что материализованная ценность
ноль. Либо общий тип результата
параметр или запрос должен использовать
обнуляемый тип.
Код ошибки:
IQueryable<AccountStatusModel> result = from d in Context.Debtors
where // Condition here
select new AccountStatusModel
{
// All of the below are decimal in the AccountStatusModel
// and all of them are decimal NOT NULL in the database
NotYetDue = d.sometable.dbcurrent,
DueThisMonth = d.sometable.dbprd1bal,
Overdue = d.sometable.dbprd2bal
+ d.sometable.dbprd3bal
+ d.sometable.dbprd4bal
+ d.sometable.dbprd5bal
+ d.sometable.dbprd6bal,
PaymentRecievedNotAllocated = d.sometable.dbunalloc,
OutstandingOrders = d.dmoutordval ?? 0,
TotalBalance = d.sometable.dbcurrent
+ d.sometable.dbprd1bal
+ d.sometable.dbprd2bal
+ d.sometable.dbprd3bal
+ d.sometable.dbprd4bal
+ d.sometable.dbprd5bal
+ d.sometable.dbprd6bal
+ d.sometable.dbunalloc
+ (d.dmoutordval ?? 0),
CreditLimit = d.dmcredlim,
LastPayment = d.dmvallastpaid,
// Some other properties here
// ....
};
Прежде чем кто-то прокомментирует имена полей, предположим, что это поддельные имена. знак равно
Обратите внимание, что все запрашиваемые поля базы данных НЕ имеют значение NULL.
Я не могу воспроизвести эту ошибку в среде разработчика.
Я думаю, что причина этой ошибки в PROD заключается в том, что каким-то образом среди запрашиваемых полей одно помечается как NULL. У меня нет быстрого способа проверить это, но я в конечном итоге буду.
Мой вопрос сейчас таков: может ли быть какая-либо другая причина для этой ошибки? Возможно ли получить эту ошибку, если запрос такой же, как и выше, а поля действительно НЕ ПУСТО. (И почему?) Если это возможно, не могли бы вы привести пример.
Пожалуйста, отвечайте, только если вы уверены, что вы правы, т.е. мне нужно что-то более сильное, чем «я думаю это так».