我有一个完整的 LINQ 查询。如果用户是经理/团队负责人,我需要运行一次查询,如果不是,则需要运行单独的查询。但是查询非常相似。
经理/团队负责人可以看到一切。其他人只看到他们获得认证的地方。
var model = (from d in department
join f in db.IPACS_Function on d.departmentID equals f.departmentID
join pg in db.IPACS_Process on f.functionID equals pg.functionID
join sop in db.IPACS_Procedure on pg.processID equals sop.processID
// Non-Manager/Teamlead portion
join cert in db.IPACS_Certification on sop.procedureID equals cert.procedureID
join procdoc in db.IPACS_ProcedureDocs on sop.procedureID equals procdoc.procedureID
join doc in db.IPACS_Document on procdoc.documentID equals doc.documentID
where cert.adUserName == currUser && cert.certifiedDate > doc.dateApproved
// End non-manager/team lead
select new IPACS_DT_MasterList
{
departmentID = d.departmentID,
functionID = f.functionID,
processID = pg.processID,
procedureID = sop.procedureID,
departmentName = d.name,
functionName = f.name,
processName = pg.name,
procedureName = sop.name,
owner = sop.owner,
automated = (bool)sop.automated
});
var model =
在不创建两个单独的语句的情况下,我在上面尝试做的事情是否可行?