您好 我是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查询,检索客户左边的所有访问点加入可见账单,并且我可以填写树视图。
该查询的最佳做法是什么?
问候
答案 0 :(得分:0)
将batch-size="n"
添加到Visites.Factures集合的映射中,其中 n 是您想要一次加载的集合数。
这意味着您只需查询每个 n Visites实例。