2011-07-01 12 views
0

私は、次のNHibernateはLINQクエリを持っており、それが.Fetch(なし同じクエリnull参照の例外.Fetch()がnull参照例外をスローするのはなぜですか?

promotions = (from a in session.Query<Application>() 
          from ap in a.Promotions 
          where a.Id == applicationId 
          && ap.EndDate >= DateTime.Now && ap.StartDate <= DateTime.Now 
          select ap).Fetch(ap => ap.LandingPage).ToList(); 

をスロー)が正常に動作します。私は同じIDを両方の時間に渡しているので、データの問題ではありません。

これはバグですか、それとも設計上の問題ですか?どうすれば例外をスローしないようにすることができますか?

答えて

0

宣言の直後に.Fetch(ap => ap.LandingPage)を移動すると結果が変わりますか?

from ap in a.Promotions.Fetch(ap => ap.LandingPage) 
+0

プロモーションタイプICollectionをであり、フェッチのIQueryableの拡張メソッドである、したがって、それはあなたが、彼は右、異なるタイプの子テーブルから項目を選択していることを実感します –

0
from a in session.Query<Application>().Fetch(ap => ap.LandingPage) 
//the rest of your code 
+0

コンパイルされませんか?この例では、ap.Promotions上にあるため、あなたのparam apは* LandingPageという子を持ちません。 –