Subsonic - 선택적 매개 변수가있는 쿼리
-
14-11-2019 - |
문제
VS # 3.5에서 VS 2008 및 Subsonic 2.2를 사용합니다. 통과 된 매개 변수가 0보다 큰지 여부에 따라 필수적으로 'if'가 'if'가있는 'if'가 본질적으로 'if'를 갖는 아일드 슨 쿼리를 만들 수 있는지 알고 있는지 알고 있습니다.
예를 들어 두 개의 전달 된 매개 변수가있는 Delete 메서드 - A와 B.
나는 (의사 코드) 와 같은 것을 원한다.
DELETE from Products
Where productId = A
if(B > 0)
{
AND ProductAttributeId = B
}
.
분명히 실제 'if'를 거기에서 필요하지 않을 것이지만, 그게 내가 아르손 사람과 함께하고 싶은 것의 본질입니다.매개 변수가 거기에 있는지 여부에 따라 두 개의 다른 쿼리를 가질 수 있습니다.하지만 깨끗한 방법이 있는지 궁금해하고있었습니다.
감사합니다.
해결책
That's how I usually do it - it's not two queries, but one SqlQuery
with optionally added constraints:
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();
There may be a typo, I can't test this right now.
제휴하지 않습니다 StackOverflow