次のコードは、product
の場合はnull
を返します。関連するエンティティをロードする方法
var product = Context.Tours
.Where(t => t.TourId == sale.TourId)
.Select(t => t.Product)
.First();
どのようにこれを行う必要がありますか?
次のコードは、product
の場合はnull
を返します。関連するエンティティをロードする方法
var product = Context.Tours
.Where(t => t.TourId == sale.TourId)
.Select(t => t.Product)
.First();
どのようにこれを行う必要がありますか?
使用Include
拡張メソッド:あなたはvirtual
として、あなたのナビゲーションプロパティを定義し、遅延ロードを無効にしない場合は
var product = Context.Tours
.Include(e=>e.Product)
.Where(t => t.TourId == sale.TourId)
.Select(t => t.Product)
.First();
、その後、関連するエンティティが自動的にデータベースからアクセスされた最初の時間をロードされます。
なぜインクルードなしで製品を読み込めないのですか? –
'Include'メソッドを使用すると、クエリの一部として関連エンティティをロードすることを明示的に指示していますが、前述のように、プロパティは 'virtual'であり、最初にアクセスされるときにロードされるべきです。あなたのモデルにあなたの質問を追加してください。あなたが達成しようとしていることをする良い方法があるかもしれません。 – octavioccl
この[リンク](https://msdn.microsoft.com/nl-nl/library/dd468057(v = vs.100).aspx)は、遅延を有効にする場合に、エンティティを満たす必要がある要件を理解するのに役立ちますloading – octavioccl
ツアーと商品の関係はどのようになっていますか? 1- *? – octavioccl
私はあなたのモデルを見ることができないので、何かをするのは非常に難しいです。わかったら、それは次のようになります: int id = Context.Product.Where(t => t.TourID == sale.TourId); またはオクタビオクの答えのように。しかし、あなたのモデルを表示すると、より良い回答を得ることができます –