Я понимаю, что вы можете использовать фильтры в 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;}
}
Первоначально я просто выбирал позиции, но теперь они хотят, чтобы пользователь мог ввести набор критериев для выбора поставщика. У меня уже есть пользовательский интерфейс / код, позволяющий пользователю указывать поставщиков с помощью API критериев, поэтому я хотел бы применить фильтр, чтобы извлекать только те элементы LineItem, которые являются положительными для счетов-фактур, которые происходят после заданной даты. Возможно ли это с помощью API критериев? Если нет, могу ли я хотя бы обойтись без добавления фильтров в свой файл сопоставления?