我正在使用 Linq to 检索两个数据集列表。它们都在同一个数据库中,但我需要将一个表转换为我的任务表,因为它已集成到我的日历中。我敢肯定,这里不值得详细介绍,但我很想加快匹配 id 和创建新任务对象的过程。这是一个一次性完成的片段,所以即使速度很慢,我也可以简单地让程序在一夜之间运行。但是,为了将来参考,我想要一些关于提高效率的建议。
var accounts = data.Accounts.ToList().OrderBy(a => a.ID);
Incidents[] Incidents = data.Incidents.ToArray();
for (int i=0;i<Incidents.Length;i++)
{
foreach (var a in accounts)
{
if (a.Acct_CID == Incidents[i].CustomerID)
{
Tasks t = new Tasks();
t.creator_id = a.ID;
t.start_date = Incidents[i].DateOpened;
t.end_date = Incidents[i].DateCLosed;
t.product_code = Incidents[i].ProductCode;
t.install_type = Incidents[i].InstallType;
t.os = Incidents[i].OSType;
t.details = Incidents[i].Description;
t.solution = Incidents[i].Solution;
t.creator_name = Incidents[i].TechID;
t.category = Incidents[i].Title;
t.text = "Ticket for" + " " + Incidents[i].Name;
if (t.end_date == DateTime.MinValue || t.end_date == null)
t.status_id = 6;
else t.status_id = 7;
data.Tasks.Add(t);
break;
}
}
}
data.SaveChanges();