所以假设我有一个来自linq的实体的tableIds表,它与列categoryID的另一个名为finishedDownloads的表有关系。如何创建一个新的mappedIds表,其中不包含在finishedDownloads中找到的ID?
我理解像where和except这样的命令,但我只是不确定怎么说,看看这个id,然后将它与id进行比较。
我正在寻找相当于
的东西SELECT * FROM mappedIds mIDs WHERE mIDs.CategoryID NOT IN
(SELECT categoryID FROM finishedDownloads)
编辑:映射的ID存储在表
中答案 0 :(得分:4)
您没有说明您的上下文是如何设置的,但即使它不完全符合我的想法,您也可以很容易地看到这个想法:
var results = _context.MappedIds
.Where(x => !_context.FinishedDownloads
.Select(f => f.categoryID)
.Contains(x.CategoryID));
答案 1 :(得分:2)
var idList = finishedDownloads.Select(f => f.categoryID);
var result = mappedIds.Where(m => !idList.Contains(m.CategoryID)).ToList();
答案 2 :(得分:1)
试试这个
var result = mappedIds.Select(m=>m.CategoryId).Except(finishedDownloads
.Select(f=>f.categoryId));