reportMessages
已从报告中收到
从存储中读取cleandirs
。
我试图验证报告的内容
为此,我正在reportmessages
和存储数据
我将列表限制为100,仍然是m.count = 213
。
我做错了什么?
var q = from r in reportMessages.Take(100)
join pp in cleanNoDirs.Take(100)
on r.FileName equals ("{:D2}{:D2}-{}.ps".format(pp.NameMin, pp.NameSec, pp.CameraMAC))
into ps
from p in ps.DefaultIfEmpty()
select new {
Uploaded = p,
Orig = r
};
var m = q.ToList();
答案 0 :(得分:0)
您将从每个表中检索到的记录限制为100,但如果您的关系为一个或多个,那么join
的结果将超过100个记录。在最坏的情况下,如果第一个集合中的每个记录都与第二个集合中的所有记录匹配,那么您的结果中将获得100 * 100条记录。
相反,在实现ToList
限制为100的结果之前:
var result = (from r in reportMessages
join pp in cleanNoDirs
on r.FileName equals ("{:D2}{:D2}-{}.ps".format(pp.NameMin, pp.NameSec, pp.CameraMAC)) into ps
from p in ps.DefaultIfEmpty()
select new {
Uploaded = p,
Orig = r
}).Take(100).ToList();