2013-01-17 3 views
0

가능한 중복 :
Linq If Statement걸기 경우 그렇지 Linq에의

내가 Linq에를 사용하여 쿼리를 실행하려고하고 있지만, where 절을하기 전에 내가 만약 조건을 지정하고 싶었지만 적절한 구문을 얻지 못하거나 가능하지 않을 수 있습니까? 많이 검색했지만 if 및 else 쿼리 전에 사용하지만 쿼리 내에서 If를 원합니다. 그것은 가능처럼 :

var q = (from mortgageapplication in context.MortgageApplications 
     if(mortgageapplication.purpose of loan==7) 
     { 
       where mortgageapplication.MortgageActive == true && mortgageapplication.MortgageCoordinator==ID 
     } 

난 그냥 노력하고 있지만, 어디 전에 경우 우리는 배치 할 수 있으면 알려 주시기입니까?

+2

좋은 질문이지만, 몇 가지 아이디어가 있습니다. http://stackoverflow.com/questions/1443152/linq-if-statement – Inisheer

+2

Linq 문의'where' 부분의 목적은 조건을 평가하는 것입니다. 컬렉션 항목에 표시됩니다. 그냥 거기에 넣으십시오 :'mortgageapplication.purposeofloan == 7 && mortgageapplication.MortgageActive == true && mortgageapplication.MortgageCoordinator == ID' – JLRishe

+0

이것은 조건이 만족한다면 다음과 비교할 때 실제로 준 불완전 데모입니다. 날짜. –

답변

0

이 쿼리는 논리적으로 동등한 것 :

var loanPurpose = 7; 
var coordinatorId = ...; 
var query = 
    from app in context.MortgageApplications 
    where app.PurposeOfLoan != loanPurpose 
     || (app.MortgageActive && app.MortgageCoordinator == coordinatorId) 
    select application; 

논리는 다음과 같이, 당신은 단지가 활성화 주어진 코디네이터가 있는지 확인하려면 간다. 그렇지 않으면 응용 프로그램을 가져옵니다.

+0

Loanpurpose는 한 번에 '2'또는 다른 '7'과 같이 다른 값을 가질 수 있으므로 조건은 Loan 목적 값에 따라 다른 필드를 비교할 수 있습니다. –

관련 문제