我确定一个简单的修复程序,但我似乎无法找到解决我遇到的问题的方法。这个想法是它会遍历"扩展"并找到他们所有的结果,我需要在结尾追加结果,但我尝试的一切似乎都没有效果。任何想法都将不胜感激。
string s = cdr.callingPartyNumber;
string[] exts = s.Trim().Split(',');
foreach (string ext in exts)
{
var calls = db.CallDetails.Where(x => x.dateTimeConnect >= cdr.dateTimeConnect && x.dateTimeDisconnect <= cdr.dateTimeDisconnect && x.callingPartyNumber.Contains(ext)).Select(x =>
new CallDetailDTO
{
origSpan = x.origSpan,
callingPartyNumber = x.callingPartyNumber,
callingPartyUnicodeLoginUserID = x.callingPartyUnicodeLoginUserID,
originalCalledPartyNumber = x.originalCalledPartyNumber,
dateTimeConnect = x.dateTimeConnect,
duration = x.duration
})
.ToList();
cdr.TotalResults = cdr.TotalResults + calls.Count;
cdr.Calls = calls.ToPagedList(cdr.Page, pageSize);
}
答案 0 :(得分:0)
您只看到最后一个calls
的原因是因为您在每次迭代中都会覆盖cdr.Calls
:
cdr.Calls = calls.ToPagedList(cdr.Page, pageSize);
我假设cdr.Calls
是某种List<CallDetailDTO>
。
您需要做的是将其设为List<List<CallDetailDTO>>
,并为List.Add
ext
使用cdr.Calls.Add(calls.ToPagedList(cdr.Page, pageSize));
:
{{1}}