2016-11-23 44 views
0

我有ServiceRequest表,其中包含指定位置(分支)的字段以及支持类型(IT问题,车队问题,维护...)根据LINQ中的详细信息选择主人

ServiceRequest: { srID(PK), srDetail, LocationID(FK), SupportID(FK), StatusID(FK), ServiceDate } 

然后我有主管表,它定义位置的列表,问题的类型他的监督:

Supervisor: { UserID(FK), LocationID(FK), SupportID(FK) } 

是什么,我可以用所以当主管登录查询,我想向他展示属于他所覆盖的地点和支持类型的所有服务请求。

目前

,我得到使用所有(活动)的服务请求:

short statusId = short.Parse(ddlStatus.Value); 
return db.ServiceRequests.Where(sr => sr.StatusID == statusId) 
     .OrderByDescending(s=>s.ServiceDate).ToList(); 

回答

3

你可以试试这个

 short statusId = short.Parse(ddlStatus.Value); 

     int userId= 1;// keep supervisor Id 

     var serviceRequest = (from e in db.Supervisor where e.UserID==userId  
           join f in db.ServiceRequests on new {e.LocationID, e.SupportID} 
           equals new {f.LocationID, f.SupportID} 
           where f.StatusID == statusId 
           select f 
          ).OrderByDescending(s=>s.ServiceDate).ToList(); 

     return serviceRequest ;