LogManager.ReconfigExistingLoggers()
有多个名为contact的表。每个联系表都有多个经销商表。我需要一种方法来使用LINQ或任何其他更好的方法来简化此搜索。请帮忙
答案 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";
}