流暢なマッピングでNHibernate3.2を使用しています。以下は、高度にスケーラブルなパフォーマンスに敏感なシステムでの単純な1対多のマッピングです。
public class Root
{
public Root()
{
Childs = new List<Child>();
}
public virtual int ID { get; set; }
public virtual IList<Child> Childs { get; set; }
public virtual int LastChildID { get; set; }
public virtual int CurrentChildID { get; set; }
}
public class Child
{
public virtual int ID { get; set; }
public virtual Root Root { get; set; }
public virtual string Name { get; set; }
}
ほとんどすべての場合、これをリポジトリからロードすると、CurrentChildIDで定義されたCurrent Childにのみ関心があり、データベースからの1回のヒットで、ルートとともにこれを読み取りますが、他のChildレコードは読み取りません。その後、残りの子に関心がある場合は、LastChildIDとCurrentChildIDの間のレコードをロードするだけで済みます。これは、ルートに数百の子があり、LastChildIDが処理されるアーカイブ/データウェアハウスのマークが付けられる前のすべてのものがあるためです。別途。
NHibernateでプリフェッチを構成するにはどうすればよいですか。例を見つけることができません。