我有一个表(Projects),它链接到projectID上的projectVersions
projectVersions包含几个列,我想在其中过滤返回的项目(以及关联的projectVersions)列表。例如,有一个“容量”列和一个“国家/地区”列。我在一个页面上做了一个过滤的项目列表,我想包括所有项目,其中任何一个相关的projectVersions容量为750ml,国家为“法国”。
可能是某个特定参数未设置,因此我传递零以表示不对其进行过滤。
我想这需要某种子查询,就像我尝试做这样的事情一样:
thisList = (From p In dc.tblProjects _
Where ((Brand = 0) Or (p.Brand = Brand)) _
And ((brandVariant = 0) Or (p.brandVariant = brandVariant)) _
And ((sizeCapacity = 0) Or (p.tblProjectVersions.sizeCapacity.xxx = sizeCapacity)) _
Order By p.dateCreated Ascending _
Select p).ToList
它不能作为“xxx”位,一对多,我希望我指定一个项目来获取其中的实体,但我想查询任何相关版本匹配其中一个标准。
答案 0 :(得分:2)
如果我理解正确,问题出在
Or (p.tblProjectVersions.sizeCapacity.xxx = sizeCapacity)
由于“tblProjectVersions”是一个集合,并且您想要查找“任何”关联版本的匹配条件,请执行以下操作:
Or (p.tblProjectVersions.Any(Function(t) t.sizeCapacity.xxx = sizeCapacity))
这将检查表格中是否有任何具有相应“sizeCapacity”的元素。