我有以下ADO.NET实体框架实体数据模型:
我想找到所有保单持有人同时具有给定身份证明的服务以及给定身份的关键字。
此LINQ不起作用:
Dim ServicesId As Integer = ...
Dim KeywordStatus As Integer = ...
Dim FoundPolicyholders = From p As Policyholder In db.PolicyholderSet.Include("Keywords").Include("Services") _
Where p.Services.Id = ServicesId _
And p.Keywords.Status = KeywordStatus _
Select p
Where子句无法以这种方式搜索p.Services和p.Keywords EntityCollections。
'Id'不是。的成员 “System.Data.Objects.DataClasses.EntityCollection(中 ....服务)”
正确的LINQ语法是做什么的吗?
答案 0 :(得分:7)
db.PolicyholderSet.Where(ph =>
ph.Services.Any(s => s.Id == someId) &&
ph.Keywords.Any(kw => kw.Status == someStatus))
为什么您的查询不起作用?由于p.Services
和p.Keywords
是Service
和Keyword
集合,因此它们不具有属性Id
或Status
,因此您无法使用{{1} }或p.Services.Id
。
Visual Basic ...
p.Keywords.Status