如何在NHibernate中查询多对多关系

时间:2011-09-05 14:02:31

标签: c# .net linq nhibernate

例如,在this example中,Employee和Address具有多对多关系,而Employee类具有属性

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

在此示例中,如何创建linq查询以将X作为其地址之一的所有Employee(X是Address变量)?

我能想到:

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

但我认为这不会得到优化,而且会非常昂贵。

1 个答案:

答案 0 :(得分:3)

试试这个:

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

例如

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