LINQ - 嵌套where子句

Joh*_*son 13 c# linq entity-framework

我的项目有问题.我想获得一份公司名单,但只过滤那些位于"斯德哥尔摩"的公司.

表结构

**Company**:
CompanyID
CompanyName
etc…

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

**CorrespondingAddress**:
AddressID
StreetName
City
etc…
Run Code Online (Sandbox Code Playgroud)

现在我首先做的是一个查询:

var companyModel = from c in db.Company select c;
Run Code Online (Sandbox Code Playgroud)

它获取完整的公司列表并具有相应的地址(可以是多个),因此结果如下所示:

在此输入图像描述

所以我的问题是:我如何根据CorrespondingAddress下的一个嵌套元素进行过滤?比如城市?

到目前为止我试过了

companyModel = companyModel.Where(s => s.CorrespondingAddress.Where(x => x.City.Equals("Stockholm")));
companyModel = companyModel.Where(s => s.CorrespondingAddress.ToList().First().Address.Equals("Stockholm"));
Run Code Online (Sandbox Code Playgroud)

但它们都不起作用.谢谢!

Rap*_*aus 49

companyModel = companyModel
               .Where(s => s.CorrespondingAddress
                     .Any(x => x.City.Equals("Stockholm")));
Run Code Online (Sandbox Code Playgroud)


小智 6

尝试Any()

companyModel = companyModel.Where(s => s.CorrespondingAddress.Any(x => x.City.Equals("Stockholm"))); 
Run Code Online (Sandbox Code Playgroud)