我知道您可以在 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/代码,所以我想应用一个过滤器来仅提取在给定日期之后发生的发票为正的 LineItems。这可以使用 Criteria API 吗?如果没有,我至少可以在不将过滤器定义添加到我的映射文件的情况下逃脱吗?