2016-11-23 69 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 ;