NHibernateでフィルターを使用して、子コレクションの一部のみをロードできることを理解しています。HQLの代わりにCriteriaAPIを使用してこれを実行できるようにしたいと思います。これは可能ですか?
アプリケーションの詳細:特定の日付以降に発生し、肯定的な広告申込情報がある特定のベンダーの請求書を読み込もうとしています。
エンティティは次のようになります。
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;}
}
元々、私は広告申込情報を取得するだけでしたが、今ではユーザーがベンダーを選択するための一連の基準を入力できるようにしたいと考えています。ユーザーがCriteriaAPIを使用してベンダーを指定できるようにするUI/コードをすでに持っているので、特定の日付以降に発生する請求書に対してポジティブなLineItemのみをプルするフィルターを適用したいと思います。これはCriteriaAPIを使用して可能ですか?そうでない場合は、少なくともfilter-defをマッピングファイルに追加せずに回避できますか?