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

尝试任何()

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