У меня есть исключение нулевой ссылки, вызванное этим кодом:
var recentOrderers = (from p in db.CMS
where p.ODR_DATE > DateTime.Today - new TimeSpan(60, 0, 0, 0)
select p.SOLDNUM).Distinct();
result = (from p in db.CMS
where p.ORDER_ST2 == "SH" &&
p.ODR_DATE > DateTime.Today - new TimeSpan(365, 0, 0, 0) &&
p.ODR_DATE < DateTime.Today - new TimeSpan(60, 0, 0, 0) &&
!(recentOrderers.Contains(p.SOLDNUM))/**/
select p.SOLDNUM).Distinct().Count();
результат двойного типа. Когда я комментирую:
!(recentOrderers.Contains(p.SOLDNUM))
Код работает нормально. Я проверил, что RecentOrderers не является нулевым, и когда я запускаю:
if(recentOrderes.Contains(0)) return;
Выполнение следует по этому пути и возвращает. Не уверен, что происходит, так как я использую подобный код выше:
var m = (from p in db.CMS where p.ORDER_ST2 == "SH" select p.SOLDNUM).Distinct();
double result = (from p in db.CUST
join r in db.DEMGRAPH on p.CUSTNUM equals r.CUSTNUM
where p.CTYPE3 == "cmh" && !(m.Contains(p.CUSTNUM)) &&
r.ColNEWMEMBERDAT.Value.Year > 1900
select p.CUSTNUM).Distinct().Count();
, который также работает без нареканий. Отметив сходство, кто-нибудь может помочь? Заранее спасибо.