2011-09-05 35 views
2

例如,許多一對多的關係,this example員工和地址有許多一對多的關係,以及Employee類有一個屬性如何查詢NHibernate的

public virtual IList<Address> Addresses { get; set; } 

在這個例子中,我如何創建一個linq查詢來獲取所有具有X作爲其地址之一的員工(X是Address變量)?

我能想到的:

q => q.Where(employee => employee.Addresses.IndexOf(X)>=0); 

但我認爲這不會被優化,將是非常昂貴的。

+0

我想你不希望創建針對它的 'EmployeeAddresses' 視圖和查詢? – henginy

回答

3

試試這個:

q => q.Where(e => e.Addresses.Any(<your condition goes here>)) 

例如

q => q.Where(e => e.Addresses.Any(a => a.City == "Moscow"))