2011-12-02 3 views
0

저는 LINQ를 처음 사용했습니다. productTypePartyId 0 그때 내가 & & 조건에 포함하지 않으려는 경우, 나는이 쿼리에서 LINQ 쿼리LINQ - WHERE 절의 CASE 문

var entities = context.MessagingTemplateEntities 
         .Where(m => 
          m.PartyId == partyId && 
          m.MessageTemplateTypeId == messagingTemplateTypeId && 
          m.ProductTypePartyId == productTypePartyId); 

아래에 있습니다. 그렇다면 값을 기준으로 매개 변수를 제외하려면 어떻게해야합니까?

답변

4

명 항상 하나 라이너로 LINQ를 강제 왜 확실하지 && m.ProductTypePartyId == productTypePartyId.

눈에 잘 띄는 것을 스스로 결정하십시오.

2

사용 && (m.ProductTypePartyId == productTypePartyId || productTypePartyId == 0) 대신

+0

productTypePartyId가 0 일 때이 값은 AND 조건으로 추가되며 productTypePartyId = 0 인 테이블에는 레코드가 없기 때문에 빈 엔터티를 반환합니다. – pramodtech

+0

죄송합니다. 오타입니다. 내 대답 편집 - 두 번째 절에서 'm.'이 제거되었습니다. –

+1

도 케이싱을 수정해야합니다. –

2
var entities = context.MessagingTemplateEntities 
         .Where(m => 
          m.PartyId == partyId && 
          m.MessageTemplateTypeId == messagingTemplateTypeId && 
          (productTypePartyId == 0 ? 
           true : 
           m.ProductTypePartyId == productTypePartyId));