2012-09-06 43 views
11

Bir projeyle ilgili bir sorunum var. Şirketlerin bir listesini almaya çalışıyorum, ancak yalnızca “Stockholm” de bulunan şirketleri filtreleyeceğim.LINQ - iç içe geçme makalesi

Tablo yapısı

**Company**: 
CompanyID 
CompanyName 
etc… 

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

**CorrespondingAddress**: 
AddressID 
StreetName 
City 
etc… 

Şimdi ne ilk ne bir sorgu geçerli: kendi Sorumlu Adresleri (birden olabilir) sahip şirketlerin tam listesini alır ve

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

, bu yüzden sonuçlar aşağıdaki gibidir:

enter image description here

Yani sorum şu: CorrespondingAddress altındaki yuvalanmış öğelerin hangisi olduğuna bağlı olarak nasıl filtreleyebilirim? Mesela şehir?

Şimdiye kadar

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

çalıştı Ama bunların hiçbiri çalışır. Teşekkürler!

cevap

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

+1 – Habib

+0

en mükemmel! – BigOmega

4

deneyin Herhangi() yapmalıyım

companyModel = companyModel.Where(s => s.CorrespondingAddress.Any(x => x.City.Equals("Stockholm"))); 
İlgili konular