2011-05-03 68 views
0

我知道你可以在NHibernate中使用過濾器來只加載部分子集合。我希望能夠使用Criteria API而不是HQL來做到這一點。這可能嗎?如何使用NHibernate Criteria過濾集合?

從我的應用程序的一些細節: 我試圖加載給定的供應商,發生在給定的日期後,並有積極的行項目的發票。

的實體是這個樣子:

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指定供應商的用戶界面/代碼,所以我想應用一個過濾器來僅抽取在給定日期之後發生的對發票有正面影響的LineItems。這可能使用Criteria API嗎?如果沒有,我可以至少離開,而不添加filter-defs到我的映射文件?

回答

0

更新了答案,第一次沒有很好地閱讀......我不知道這是否會有所幫助,但是我遇到了同樣的問題,我只希望活動被拉下兒童收藏。這使用查詢,但它是在標準的頂部,所以它可以完成的包裝... Here it is...

+0

謝謝,但這不是我正在尋找。這將找到供應商列表,但我想要的只是拉取符合給定條件的發票明細。 – Neil 2011-05-04 19:26:31

+0

對不起,我的誤解,希望新的答案可以幫助你... – gt124 2011-05-04 20:27:04