전체 LINQ 쿼리를 작성했습니다. 사용자가 관리자/팀 리드이고 개별 쿼리가 실행되지 않으면 실행되는 쿼리가 하나 필요합니다. 그러나 쿼리는 매우 유사합니다.if 문을 사용하는 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 =
문을 작성하지 않고 가능한 이상 할 노력하고 무엇입니까?
? LINQ to Objects에서 if 문은 확실히 문제가되지 않습니다. 나는 LINQ to SQL이 적절한 case 문을 생성 할 것이라고 생각하지만 그렇다고 확신하지는 않습니다. – evanmcdonnal
왜 내가 볼 수 있듯이 의도적으로 읽기 쉽고 유지 보수하기 어려운 코드를 작성하겠습니까? –
@AdrianWragg 일반적으로 그의 데이터 소스에는 6 개의 조인이 필요하므로 다른 형식으로는 더 읽기 쉽지 않다는데 동의합니다. 선호하는 솔루션이 될 SQL 스키마를 변경할 수는 있지만 거의 옵션이 아닙니다. – evanmcdonnal