2012-09-06 42 views
11

Tôi gặp sự cố với dự án. Tôi đang cố gắng để có được một danh sách các công ty, nhưng chỉ lọc những công ty được đặt tại “Stockholm”.LINQ - nested where khoản

cấu trúc Bảng

**Company**: 
CompanyID 
CompanyName 
etc… 

**CompanyAddressDetails** (relation table): 
Company_CompanyID 
CorrespondingAddress_AddressID 

**CorrespondingAddress**: 
AddressID 
StreetName 
City 
etc… 

Bây giờ những gì đầu tiên tôi làm là một truy vấn:

var companyModel = from c in db.Company select c; 

nào được đầy đủ danh sách các công ty và có địa chỉ tương ứng của họ (có thể nhiều), do đó kết quả như sau:

enter image description here

Vì vậy, câu hỏi của tôi là: làm thế nào tôi có thể lọc tùy thuộc vào những gì một trong những yếu tố nằm trong CorrespondingAddress là gì? Thành phố chẳng hạn?

Cho đến nay tôi đã cố gắng

companyModel = companyModel.Where(s => s.CorrespondingAddress.Where(x => x.City.Equals("Stockholm"))); 
companyModel = companyModel.Where(s => s.CorrespondingAddress.ToList().First().Address.Equals("Stockholm")); 

Nhưng không ai trong số họ làm việc. Cảm ơn!

Trả lời

30
companyModel = companyModel 
       .Where(s => s.CorrespondingAddress 
        .Any(x => x.City.Equals("Stockholm"))); 
+0

+1 rằng nên làm điều đó – Habib

+0

tuyệt vời nhất! – BigOmega

4

Hãy thử Bất kỳ()

companyModel = companyModel.Where(s => s.CorrespondingAddress.Any(x => x.City.Equals("Stockholm"))); 
Các vấn đề liên quan