C# NHibernate:获取具有子集合子集的多个实体?
我的类看起来像这样,我只包括相关属性:C# NHibernate:获取具有子集合子集的多个实体?,c#,.net,asp.net,nhibernate,detachedcriteria,C#,.net,Asp.net,Nhibernate,Detachedcriteria,我的类看起来像这样,我只包括相关属性: public class Order { public virtual Customer Customer { get; set; } public virtual IEnumerable<OrderLine> OrderLines { get; set; } } public class OrderLine { public virtual string Product { get; set; } // Simplif
public class Order
{
public virtual Customer Customer { get; set; }
public virtual IEnumerable<OrderLine> OrderLines { get; set; }
}
public class OrderLine
{
public virtual string Product { get; set; } // Simplified
}
但是当我给CreateFilter方法Order.OrderLines时,它首先检索所有的OrderLines,然后检索10个第一个OrderLines,这不是我想要的。我还尝试将其与对NHibernateUtil.Initialize的调用结合起来,但没有成功
如何为此问题创建分离的标准?或者,如果这不是完全可能的话,如何仅为每个订单检索前10个结果,而不获取整个集合?您可以在order类的NHibernate映射文件中将batch size属性设置为10。通过这种方式,它急切地加载集合的前10个元素,而懒惰地加载其余的元素。我将按以下方式绘制收藏地图:
<set name="OrderLines" table="OrderToOrderLine" batch-size="10">
<key column="OrderId"/>
<one-to-many class="OrderLine"/>
</set>
更多信息,请阅读:您可以在Order类的NHibernate映射文件中将batch size属性设置为10。通过这种方式,它急切地加载集合的前10个元素,而懒惰地加载其余的元素。我将按以下方式绘制收藏地图:
<set name="OrderLines" table="OrderToOrderLine" batch-size="10">
<key column="OrderId"/>
<one-to-many class="OrderLine"/>
</set>
更多信息,请阅读:如果改为根据条件调用SetMaxResults会发生什么?如果改为根据条件调用SetMaxResults会发生什么?
<set name="OrderLines" table="OrderToOrderLine" batch-size="10">
<key column="OrderId"/>
<one-to-many class="OrderLine"/>
</set>