Lambda表达式在导航属性上的位置

时间:2009-12-20 20:18:02

标签: entity-framework linq-to-entities lambda

下午好,

我有三个实体(关注这个问题)

公司(身份证等) 公司地址(AddressID,CompanyID,Rank) 地址详细信息(地址ID,街道,城市,州,邮编)

Rank和company id不在AddressDetails中的原因是因为地址详细信息是通过ContactAddress实体与联系人共享的。

无论如何,我需要构建一个IQueryable给定一个IQueryable来检查一个字符串是否包含在City中(最终或状态)。我想使用Lambda表达式而不是from c in companies语法...我试过

query = query.Select(c => c.Addresses.Where(a => a.AddressDetails.City.Contains(City)).Select(ca => ca.Company));

在此示例中,c.Addresses是CompanyAddress的导航属性。

感谢您的帮助,

1 个答案:

答案 0 :(得分:4)

我认为这会奏效:

query = query.Where(c => c.Addresses.Any(a => a.AddressDetails.City.Contains(City)));

我认为查询是IQueryable<Company>