2010-11-09 54 views
1

我需要編寫一個NHibernate查詢,它將放置一個限制來訪問一對多關係中的子項。如何編寫查詢兒童的NHibenerate查詢?

例如,我有一個客戶對象,其屬性是地址列表。我需要找到在某個城市有地址的所有客戶。

此外,我正在寫這個查詢,這樣我也會將其他限制添加到客戶本身,例如狀態,名稱等。所以,我無法純粹從地址角度編寫查詢。

有關如何完成此任何想法?

回答

1

您可以使用標準的API,與你的客戶對象不會忽略物業的「嵌套」的標準:

var result = session 
    .CreateCriteria(typeof(Customer)) 
     .CreateCriteria("Adresses") 
     .Add(Restriction.Eq("City", "NY")) 
    .ToList<Customer>(); 

如果您需要在名稱查詢,你可以去這樣的:

var customerCriteria = session 
    .CreateCriteria(typeof(Customer)); 

customerCriteria.Add(Restrictions.Like("Name", "John", MatchMode.Exact)); 

customerCriteria.CreateCriteria("Adresses") 
    .Add(Restriction.Eq("City", "NY")); 

var result = customerCriteria.ToList<Customer>(); 
+0

美麗!謝謝! – 2010-11-09 21:57:59