6

Foo にはタイトルがあります。
Bar は Foo を参照します。バーのコレクションがあります。
Foo.Title のコレクションが必要です。

コレクションに 10 本のバーがある場合、db を 10 回呼び出します。

bar.Select(x=>x.Foo.Title)

現時点では、これは (NHibernate Linq を使用していて、ドロップしたくありません) Bar コレクションを取得します。

var q = from b in Session.Linq<Bar>()
                where ...
                select b;

私はこれについてアイエンデが言っていることを読みました。
別の関連する質問
ちょっとしたドキュメンテーション
また、関連する別のブログ投稿.
多分これは助けることができますか?これ
はどうですか? 多分MultiQueryは私が必要とするものですか? :/

しかし、私はまだこれを適切な解決策で「コンパイル」できません。

n + 1を選択しないようにするには?

4

1 に答える 1

3

これはうまくいきませんでした:

var q = from b in Session.Linq<Bar>().Expand("Foo.Title")
                where ...
                select b;

しかし、この種は役に立ちました:

var q = from b in Session.Linq<Bar>().Expand("Foo")
                where ...
                select b;

..しかし、リポジトリを使用しようとしているものは、foosもロードしていることを知りません。
それをより明確にする方法はありますか?

1 つのアイデアは、命名を FindBarsWithFoos() に変更することです。

少なくともそれは機能します。

于 2009-10-05T11:40:34.013 に答える