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