2011-02-25 73 views
0

有一個表,列名等需要幫助形成的LINQ to SQL表達式

Name | ProductID | Price | Category | SubCategory 

我傳遞一個類別名稱爲的操作方法,我想回到屬於同一行的子類別名稱作爲傳入的類別名稱

所以這樣的事情,除非這是錯誤的。

var subcategories = 
     productsRepository.Products 
         .Select(x => x.SubCategory.Where(x.Category == category); 

因此,我可以再與此收集不同的子類別名稱:

foreach (string subcategoryName in subcategories.Distinct().OrderBy(x => x)) 

謝謝。

+0

當你談論'行名'時,你是指'列名'嗎? – 2011-02-25 06:39:37

+0

YEah,這些是列名「名稱|產品ID |價格|類別|子類別」並且我想提取與我要傳入的類別名稱在同一行中的子類別名稱。 – LaserBeak 2011-02-25 06:43:02

回答

1

你是否在尋找:

var subcategories = productsRepository.Products 
             .Where(x => x.Category == category) 
             .Select(x => x.SubCategory) 
             .Distinct() 
             .OrderBy(x => x); 

在另一方面,它似乎你的數據庫不被標準化。

+0

否其未歸一化所有或正常的事情:)我只是在試驗。按照我的理解,標準化將涉及到通過創建下列表(類別,子類別,產品等)將該表分成相關數據組,然後使用子類別表中的子類別ID主鍵將產品分配到這些子類別,並依次分配子類別也是類別。 – LaserBeak 2011-02-25 07:42:05

0

我不確定我是否完全理解了這個問題,但是最初是否需要篩選,然後選擇列?

var subcategories = 
     productsRepository.Products.Where(x=>x.Category==category) 
         .Select(x => x.SubCategory); 
+0

當然我會這樣做的。謝謝你們。我完全不知道有關LinQ語法的腳本,忘記了你先過濾然後從結果中選擇。 – LaserBeak 2011-02-25 07:20:46