首先要做的事情 - 我使用Visual Studio 2012中的C#連接到SqlServerCe數據庫。 我正在使用Entity framework 6和Linq執行此功能。 所以 - 關於這個問題。按照一組返回所有內容,但只返回其他組的所有內容
我有一個表如下
ItemGroup
(
ID INT PRIMARY KEY,
ItemID INT,
GroupID INT
)
有鏈接到這個在項目組通過表它們的ID(項目和組)和兩個外鍵列兩個表。
每個項目可以是一個組的一部分,每個組可以有很多項目。
如果項目具有0則組ID它被認爲不屬於某一組
的一部分的這樣的結果是,有每個具有2約3000基 - >〜30項,但有一個小組有大約4000個項目。
我的問題是我有一個項目列表,我想只返回一個來自每個組,除非該項目是組0的一部分(即沒有組)。在組0的情況下,我想返回所有匹配的項目。
例如:
**Group 0**
*Item 1,
Item 2,
Item 3,*
**Group 1**
*Item 4,
Item 5*
**Group 2**
*Item 6,
Item 7,
Item 8*
**Group 3**
*Item 9*
,我有以下的產品清單。
*Item1, Item2, Item4, Item5, Item6, Item7*
在這種情況下,我想輸出的所有從我的名單是在組0,這樣的項目:
*Item1, Item2*
項目4是組1的一部分,所以我們要顯示該項目,但由於項目5是同一組的一部分,所以我們不希望這樣,所以我的名單的其餘部分將顯示如下:
*Item4, Item6*
給予的完整列表:
*Item1, Item2, Item4, Item6*
我嘗試了好幾種方法,主要是通過使用一個聯盟,由此我首先獲得組0中的所有記錄,然後在其他記錄上首先進行組合,然後將它們結合在一起以獲得最終結果。
但是,這看起來效率非常低,需要一個年齡來執行 - 更不用說Linq聲明很難遵循。
有人能指出我可能遵循的方向以執行此功能嗎?
你能發表嗎?涉及表的模式? – BillRuhl 2014-11-06 15:11:30