我對Linq相當陌生,並且在多對多關係中使用動態的方式掙扎着。Linq2Entities,多對多和動態where子句
數據庫表像這樣:
產品< - > Products_SubCategories < - >小類
與Products_SubCategories
是一個鏈接表。
我的全LINQ語句
db.Products.Where("it.SubCategories.SubCategoryID = 2")
.Include("SubCategories")
.OrderBy(searchOrderBy)
.Skip(currentPage * pageSize)
.Take(pageSize)
.ToList()
.ForEach(p => AddResultItem(items, p));
所以忽略一切扎Where()
我只是想退出被鏈接到子類ID 2的所有產品,這將失敗,並
要從集合中提取屬性,必須使用子查詢遍歷集合中的多部分標識符第8行第1列。
我認爲使用SQL-esque語法可以按照this link做子查詢。但是我不確定如何在lambda/chaining語法中做到這一點。
這是一個搜索函數的開始,我想動態地創建where字符串,就像我使用searchOrderBy
字符串來避免大的SELECT CASE
一樣。產品通過鏈接錶鏈接到另一個表格,一旦我瞭解如何執行此示例,我將需要包含這些鏈接表格。
任何幫助將不勝感激!
感謝
由於克雷格,明確的consisce和良好的工作。身份證支持自己進入一個角落!我通過SP整合了FT搜索功能,因此改變了實現方式,但這有助於我的理解。 – Jammin 2010-02-10 23:18:47
優秀的答案,正是我所尋找的 – januszstabik 2010-11-19 13:53:08