2011-03-31 5 views
0

C# 3.5에서 VS 2008 및 아음속 2.2를 사용합니다. 전달 된 매개 변수가 예를 들어 0보다 큰지 여부에 따라 본질적으로 중간에 'IF'가있는 아음속 쿼리를 만들 수 있는지 누구나 알고 있습니다. 예를 들어아음속 - 선택적 매개 변수가 포함 된 쿼리

,이 전달 된 매개 변수가 삭제 방법 - A와 B

나는 (의사 코드) 분명히

DELETE from Products 
Where productId = A 
if(B > 0) 
{ 
AND ProductAttributeId = B 
} 

는 실제 'IF'를 필요가 없을 것 같은 것을 원하는을 그 안에있는 조항은 아음속으로하려고하는 것의 본질입니다. 매개 변수가 있는지 여부에 따라 두 가지 다른 쿼리를 사용할 수 있지만 클리너 방법이 있는지 궁금해하고 있습니다.

감사합니다. 나는 보통 그것을 할 방법

답변

0

- 선택적으로 추가 된 제약은 두 개의 질의 아니지만, 하나 SqlQuery는 :

SqlSquery q = DAL.DB.Delete() 
    .From<DAL.Product() 
    .Where(DAL.Product.ProductIdColumn).IsEqualTo(A); 
if (B > 0) 
{ 
    q.And(DAL.Product.ProductAttributeIdColumn).IsEqualTo(B); 
} 
q.Execute(); 

오타가있을 수 있습니다, 지금이 권리를 테스트 할 수 없습니다.

+0

우수합니다. 감사합니다. - 사용해 보겠습니다. – scaryjones