如何简化这一点,以便搜索花费更少的时间?

时间:2018-02-15 14:16:16

标签: linq-to-sql

LogManager.ReconfigExistingLoggers()

有多个名为contact的表。每个联系表都有多个经销商表。我需要一种方法来使用LINQ或任何其他更好的方法来简化此搜索。请帮忙

1 个答案:

答案 0 :(得分:0)

您可以做的第一个优化是替换内部循环以通过id查找雇员,例如

string name = null;
foreach (var dealer in contact)
{
   var emp= dealer.employees.Where(e=>e.Id == primarySalespersonId).FirstOrDefault();
   if (emp!= null)
   {
       if (emp.personFirstName != null)
            name = emp.personFirstName;
       else
            name = "No Name";
   }

   if (name != null)
       break;
}

更进一步,需要做出一些假设。

当一个表有一个名为'id的列时,我认为这意味着该列是一个唯一标识列。

如果联系人代表每个经销商(而不是选择经销商),并且如果每个员工都属于经销商,那么您应该能够直接查找ID。

   var emp = employees.Where(e=>e.Id == primarySalespersonId).SingleOrDefault();
   if (emp != null)
   {
       if (emp.personFirstName != null)
            name = emp.personFirstName;
       else
            name = "No Name";
   }