我有文档表和标志表。 文档记录可与标志表中的许多记录相关联。
现在,当文档ID出现在标志表中时,我想获取文档表的所有记录。
我在这里得到所有文件:
var documents = (from c in context.documents select c);
在这里,我得到了所有的标志并保存到列表中:
var myDocuments = (from s in context.signs where s.UserId== id select s.ID).ToList();
此列表包含文档ID的集合。
在这里,我试图获取myDocuments列表中存在的所有文档:
documents.Where(item => myDocuments.Contains(item.ID));
但是,当我做 .ToList()时总是返回所有记录(在数据库中只存在一个兼容记录)
LinQ声明有什么问题?
答案 0 :(得分:0)
问题是这个语句没有修改文档的内容,它只返回结果(你没有做任何事情):
documents.Where(item => myDocuments.Contains(item.ID));
文件仍然是完整清单。
将此行更改为:
var matchingIDDocs = documents.Where(item => myDocuments.Contains(item.ID));
然后在代码中使用matchingIDDocs代替“文档”。