我在理解 LINQ to Entites 查询时遇到问题,它没有给我想要的结果。我有以下代码,它应该执行延迟查询并在 Silverlight Datagrid 中显示结果。
public List<DispIRTSiteReports> DisplayIRTSiteReportsFilOn(List<IssueTypes> issueType, DateTime fDate, DateTime tDate)
{
try
{
var resultSet = from items in DataContext.IRT_Limited_View
select items;
var iType = issueType.Select(i=>i.IssueName); //contains multiple selected issue type Names
if (issueType.Count != 0)
{
foreach (var type in iType)
{
var copy = type;
resultSet = resultSet.Where(items => items.Type_Text.Equals(copy));
}
}
var newResultSet = (from q in resultSet
where q.Date_Time > fDate && q.Date_Time < tDate
select new DispIRTSiteReports
{
PhExt = q.Phone_Extension,
IssueType = q.Type_Text,
IssueSubType = q.Subtype_Text,
IssueDes = q.Issue_Description
}).ToList();
return newResultSet;
}
catch (Exception ex)
{
throw ex;
}
}
我选择了多个问题类型名称并将它们存储在 var iType 中,但是当我执行代码时,结果集包含 null,因为第一个“foreach”迭代使用第一个问题类型名称更改了结果集,当第二次迭代完成时,结果集无法匹配第二个问题类型名称,因此结果集变为空。
我想知道如何在不改变原来的resultSet的情况下查询resultSet,使resultSet包含选择的多个IssueType Names的对应数据。非常感谢您在这方面的帮助。