4
我正在處理搜索表單,用戶可以選擇一個或多個條件來篩選搜索結果。其中一個標準與兒童關係有關。
我想創建一個擴展方法到Iqueryable<Parent>
,所以我可以用作我的「鏈接」的一部分。
方法簽名(截至目前)是:
public static IQueryable<Parent> ContainsChild(this IQueryable<Parent> qry, int[] childrenIDs)
父表和子表:
Parent
ParentID
Name
Description
Child
ParentID (FK)
AnotherID (from a lookup table)
Selection criteria:
int[] ids = new int[3] {1,2,3};
用法是這樣的:
var parents = repository.All() //returns Iqueryable<Parent>
public IQueryable<Parent> Search(Search seach){
if (search.Criteria1 != null){
parents = parents.FilterByFirstCriteria(search.Criteria1);
}
if (search.ChildrenIDs != null){ //ChildrenIDs is an int[] with values 1,2,3
parents = parents.ContainsChild(search.ChildrenIDs)
}
}
我想弄清楚的是如何創建ContainsChild方法,該方法返回一個IQueryable<Parent>
其中父母至少有一個陣列中的AnotherID
孩子。
(我試圖用EF4來實現這個)
任何幫助完全讚賞。
簡單而優雅。謝謝,工作很棒! – nandos