16

プロジェクトに問題があります。企業のリストを取得しようとしていますが、「ストックホルム」にある企業のみをフィルタリングします。

テーブル構造

**Company**:
CompanyID
CompanyName
etc…

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

**CorrespondingAddress**:
AddressID
StreetName
City
etc…

今私が最初にすることはクエリです:

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

これにより、会社の完全なリストと対応する住所 (複数の場合があります) が取得されるため、結果は次のようになります。

ここに画像の説明を入力

だから私の質問は次のとおりです: CorrespondingAddress の下にネストされた要素のどれが何であるかに応じて、どのようにフィルタリングできますか? たとえば市?

これまで試した

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

しかし、どれも機能しません。ありがとう!

4

2 に答える 2

59
companyModel = companyModel
               .Where(s => s.CorrespondingAddress
                     .Any(x => x.City.Equals("Stockholm")));
于 2012-09-06T10:15:00.477 に答える
8

Any()を試してください

companyModel = companyModel.Where(s => s.CorrespondingAddress.Any(x => x.City.Equals("Stockholm"))); 
于 2012-09-06T10:16:16.360 に答える