десятичный?с левым внешним соединением получает нулевую ссылку в LINQ - PullRequest
0 голосов
/ 18 сентября 2018

Я пытаюсь выполнить левое внешнее объединение в LINQ в течение двух var с, но при выборе требуемых столбцов я получаю Object reference not set to an instance of an object ошибку, при которой хочу Nullable decimal.

    var FLS = (from ee in SumTillFYEnd 
                        join es in SumTillFYStart on ee.Account equals es.Account into temp
                        from t in temp.DefaultIfEmpty()                             
                        select new
                        {  
                            Account = ee.Account, // As of here it works
                            BeginDr = (t.DrStartCF == 0) ? (decimal?) null : t.DrStartCF // Here I get error Object reference not set to an instance of an object.
                        });

Иногда SumTillFYEndи иногда SumTillFYStart становится нулевым.Я хочу, чтобы объединение работало со значениями по умолчанию, если какое-либо одно или оба значения равно нулю.

1 Ответ

0 голосов
/ 18 сентября 2018

Проблема пытается привести null к decimal?.Вы никогда не можете напрямую привести null к другому типу, обнуляемому или нет.Это всегда вызывает NullReferenceException.Вместо этого вы хотите default.Другими словами, заменить:

(decimal?)null

на

default(decimal?)
...