nhibernate优化

nhibernate优化,nhibernate,Nhibernate,你好 我是nhibernate的新手,我想在树状视图中填入一些信息 -代码中一个客户的访问列表 -每次访问都包含代码中的票据制造清单 我写的代码是: ISession session = NHibernate.DataAccess.Models.Repository.TSession(); var visites = (from v in session.Query<Visites>() where v.Clients.Idclient == lstClients.Selecte

你好 我是nhibernate的新手,我想在树状视图中填入一些信息 -代码中一个客户的访问列表 -每次访问都包含代码中的票据制造清单

我写的代码是:

ISession session = NHibernate.DataAccess.Models.Repository.TSession();

var visites = (from v in session.Query<Visites>()
 where v.Clients.Idclient == lstClients.SelectedValue.ToString()
 && v.Supprime == false
 select v).ToList();

foreach (Visites v in visites)
{
 node = new TreeNode("Visite du " + v.Datevis.ToShortDateString());

 var liste = v.Factures.Where(f => !f.Masque).Where(f => !f.Recup);
 foreach (Factures f in liste)
 {
  node.Nodes.Add("Facture n°" + f.Nofacture.ToString());
 }
}
请注意:

访问列表将从一位客户的访问中过滤 票据列表仅过滤可见票据 它工作得很好,但速度很慢,每次访问都有一个sql查询。 在我的旧代码中,我做了一个sql查询,检索客户左侧的所有访问,然后加入可见账单,并以良好的顺序填充树视图

对于该查询,最佳做法是什么

关于

将batch size=n添加到Visites.Factures集合的映射中,其中n是要一次加载的集合计数

这意味着您只能对每n个Visites实例进行一次查询。

将batch size=n添加到Visites.Factures集合的映射中,其中n是要一次加载的集合计数


这意味着您只能对每n个Visites实例进行一次查询。

我对您的解决方案有了更好的了解,并对其进行了测试。它的性能更高,谢谢。我对您的解决方案有了更好的了解,并对其进行了测试。它的性能更好,谢谢