Linq2SQLを使用してeager-loadingでデータを取得するのが好きです。コードは次のように似ています:複数のDataLoadOptionsを持つLinq2SQl eager load
DataLoadOptions options = new DataLoadOptions();
options.LoadWith<Product>(c => c.ProductCompanies);
options.LoadWith<Product>(c => c.OrderDetails);
db.LoadOptions = options;
IEnumerable<Product> products = db.Products.ToList<Product>();
私は期待どおりに1つ以上のSQLクエリを生成したことを確認します。実際には、ProductとOrderDetailsを使用してeager-loadingを実行し、ProductCompanyは1つずつ照会されます。私はここで何か悪いことをしましたか?それともLinq2SQLの問題ですか?回避策はありますか?
ありがとうございます!
更新: SQLプロファイラからSQLをチェックします。私はLeppieとIanの両方が正しいことを発見しました。それらは1つのトランザクションでバインドされています。しかし、私はそれを怠惰な負荷として設定すると、複数の接続を開きました。
は注意してください、あまりにもこれを掲載している負荷を事前に及び繰延を残している他の人1(ランダム?)ピック(単にヒントLoadWithそれらを無視して)それを読み込みますDataLoadOptionsは非常に非効率なクエリを作成します。 –
ありがとう、チャド!私は次のプロジェクトでNhibernateに戻ります:=) –