2014-02-14 46 views
0

因此,可以說我有一個來自linq的實體的mappedIds表,它與列名categoryID上名爲finishedDownloads的另一個表有關係。我如何製作一個新的mappedIds表,其中包含在finishedDownloads中找不到的id?通過linq中的另一個表的ID篩選表

我明白像where和except之類的命令,但我只是不知道該怎麼說,看看這個id,並將它與該id進行比較。

我在尋找

SELECT * FROM mappedIds mIDs WHERE mIDs.CategoryID NOT IN 
(SELECT categoryID FROM finishedDownloads) 

編輯等價的:映射的ID存儲在表

回答

4

你沒有說你的背景下是如何設置的,但即使是不完全是因爲我認爲這是可以很容易看到的想法:

var results = _context.MappedIds 
         .Where(x => !_context.FinishedDownloads 
              .Select(f => f.categoryID) 
              .Contains(x.CategoryID)); 
+0

此作品謝謝 –

2
var idList = finishedDownloads.Select(f => f.categoryID); 

var result = mappedIds.Where(m => !idList.Contains(m.CategoryID)).ToList(); 
1

試試這個

var result = mappedIds.Select(m=>m.CategoryId).Except(finishedDownloads 
                 .Select(f=>f.categoryId)); 
+0

我得到一個不能隱式轉換iqueriable 這是否只是得到的整數? –

+0

@Umimi是的,結果將只包含'mappedIds'中存在的id,但不包含'finishedDownloads'中的id。 – Sachin

相關問題