[英]Filter parent/child table (one to many association) in linq query based on entities in child table?
我有一個表(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”位是一對多的,希望我指定一個要到達其中的實體的項目,但是我想查詢哪里有任何關聯的版本與條件之一匹配。
如果我理解正確,則問題出在
Or (p.tblProjectVersions.sizeCapacity.xxx = sizeCapacity)
由於“ tblProjectVersions”是一個集合,並且您要查找“任何”關聯版本與條件匹配的位置,因此請執行以下操作:
Or (p.tblProjectVersions.Any(Function(t) t.sizeCapacity.xxx = sizeCapacity))
這將檢查表內是否有帶有適當“ sizeCapacity”的元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.