2011-02-14 11 views
2

私はNHibernateのにLINQを使用して、このような何か(簡体字)に見えるモデルを持っている:LINQ <>

public class Person { 
    public virtual string FirstName { get; set; } 
    public virtual string LastName { get; set; } 
    public virtual ICollection<Address> Addresses { get; set; } 
} 

public class Address { 
    public virtual string Street { get; set; } 
    public virtual string City { get; set; } 
} 

私はNHibクエリに、次のLINQを実行することができます。

Expression<Func<Person, bool>> predicate = pr => pr.FirstName == "Bob"; 
List<Person> people = session.Query().Where(predicate).ToList(); 

しかし、私はCity == "Something"の住所を持つすべての人を返そうとしています。

答えて

4

方法について:

List<Person> people = session.Query() 
         .Where(p => p.Addresses.Any(a => a.City == "Something")) 
         .ToList(); 

クエリはまだデータベースに実行すると仮定だと。あなただけList<Person>以内にそれを実行したい場合は、既に返さ:

people = people.Where(p => p.Addresses.Any(a => a.City == "Something")) 
       .ToList(); 
+2

おかげでジョン、それは魅力を働きました。私はLINQ fooで作業する必要があります。私の所はどこですか?「私の質問はJon Skeetのバッジによって答えられましたか? –

関連する問題