Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NHibernate:获取具有子集合子集的多个实体?_C#_.net_Asp.net_Nhibernate_Detachedcriteria - Fatal编程技术网

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>