2011-05-03 129 views
0

我知道你可以在NHibernate中使用过滤器来只加载部分子集合。我希望能够使用Criteria API而不是HQL来做到这一点。这可能吗?如何使用NHibernate Criteria过滤集合?

从我的应用程序的一些细节: 我试图加载给定的供应商,发生在给定的日期后,并有积极的行项目的发票。

的实体是这个样子:

public partial class Vendor 
{ 
    public virtual string Name {get; set;} 
    //A bunch of other properties 
    public virtual ICollection<Invoice> Invoices {get; protected set;} 
} 

public partial class Invoice 
{ 
    public virtual DateTime? Date {get; set;} 
    public virtual ICollection<LineItem> LineItems {get; protected set;} 
} 

public partial class LineItem 
{ 
    public virtual decimal Amount {get; set;} 
} 

本来,我才开行的项目,但现在他们希望用户能够输入一堆的标准来选择供应商。我已经有了允许用户使用Criteria API指定供应商的用户界面/代码,所以我想应用一个过滤器来仅抽取在给定日期之后发生的对发票有正面影响的LineItems。这可能使用Criteria API吗?如果没有,我可以至少离开,而不添加filter-defs到我的映射文件?

回答

0

更新了答案,第一次没有很好地阅读......我不知道这是否会有所帮助,但是我遇到了同样的问题,我只希望活动被拉下儿童收藏。这使用查询,但它是在标准的顶部,所以它可以完成的包装... Here it is...

+0

谢谢,但这不是我正在寻找。这将找到供应商列表,但我想要的只是拉取符合给定条件的发票明细。 – Neil 2011-05-04 19:26:31

+0

对不起,我的误解,希望新的答案可以帮助你... – gt124 2011-05-04 20:27:04