2

コレクションを積極的にフェッチするにはどうすればよいですか? 最初の N 個のアイテムだけですか?

このコードを使用すると機能しますが、それを達成するための「公式の方法」はありますか?

public Gallery GetById(int id)
{
    var session = GetSession();

    var criteria = session.CreateCriteria<Gallery>()
        .Add(Expression.Eq("Id", id))

        .SetFetchMode("Pictures", FetchMode.Eager)         
        .CreateAlias("Pictures", "p")

        .SetFirstResult(0)
        .SetMaxResults(24)
        ;

    return criteria.UniqueResult<Gallery>();
}

この場合、 の結果をバインドしています。Galleryこれはとにかく一意の結果ですが、 の結果をバインドしたいと考えていますPictures

4

1 に答える 1

0

あなたのコードは正しく動作し、完全に受け入れられます。常に熱心にフェッチしたい場合は、テーブル マッピング構成 (HBM、Fluent、または使用するソリューション) でそのように設定し、熱心にフェッチしたくない場合は明示的にそうしないように指示できます。フェッチ。どちらの方法でも問題なく機能し、受け入れられます。プロジェクトのニーズとチームのコーディング スタイルに合わせて、より便利または安全な方を使用してください。

于 2011-09-07T21:46:26.077 に答える