私は、このコードによって引き起こさnull参照の例外があります。null参照例外
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();
結果がdouble型です。私がコメントアウトするとき:
!(recentOrderers.Contains(p.SOLDNUM))
コードは正常に動作します。私はrecentOrderersがnullでないことを確認しました。実行したとき:
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();
を:私はそれを超えるようなコードを使用するのでわからない、何が起こっています。類似点に気づいた後、誰でも助けることができますか?前もって感謝します。
生成されたSQLの外観はどうなっていますか? (これはLINQ to SQLまたはLINQ to Entitiesであると仮定しています) –
Jon:これはSQLの遅延実行のケースですか? – Robaticus