据我所知,您可以在NHibernate中使用过滤器来加载子集合的部分内容。我希望能够使用Criteria API而不是HQL来做到这一点。这可能吗?
我的申请中的一些细节: 我正在尝试加载在给定日期之后发生的给定供应商的发票,并且具有正订单项。
实体看起来像这样:
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指定供应商的UI /代码,因此我想应用过滤器来仅提取在给定日期之后发生的对发票有利的LineItem。这是否可以使用Criteria API?如果没有,我可以至少逃脱而不将filter-defs添加到我的映射文件中吗?
答案 0 :(得分:0)
更新了答案,第一次没有读好...我不知道这是否会有所帮助,但我遇到了同样的问题,我只想要激活一个子集合。这使用了查询,但它是一个基于标准的包装器,所以它可以完成... Here it is...