EmpId
,
EmpName
,
PrimaryMobile
我在DB中具有以下字段
claimTable
,
EmpId
,ClaimId
...我想从
ClaimDetails
我可以通过循环来实现此操作:
claimTable
这给出了正确的结果,但是,我本人并不相信数据库命中的复杂性和数量以获得所需的结果。
目前,您每次都会在循环中击中数据库。您可以通过使用
IN
方法来替换Employees
循环中的Where子句。
EmpsByManager(ManagerId)
,也不是,
public dynamic getActiveClaims(int ManagerId)
{
db.Configuration.ProxyCreationEnabled = false;
var myEmps = db.getEmpDetofManager(ManagerId).ToList();
List<List<claimJSON>> claimsList = new List<List<claimJSON>>();
foreach(var Emp in myEmps)
{
claimsList.Add(db.claimJSONs.Where(e => e.EmpId == Emp.EmpId && e.claimstatus != 0 && e.claimstatus != 8).ToList());
}
return claimsList;
}
变量中的结果将是一个,而不是foreach
这将导致DB击中2个命中。一个用于存储的proc,另一个用于从索赔json表中获取数据的数据,以获取我们从存储的proc结果中获得的empids列表。