Дозвуковой - запрос с дополнительными параметрами
-
14-11-2019 - |
Вопрос
Использование C # 3,5 через VS 2008 и дозвуковой 2.2. Кто-нибудь знает, можно ли создать дозвуковой запрос, который по существу имеет «если» в середине этого, в зависимости от того, был ли пропущенный параметр, например, больше нуля.
Например, метод удаления, который имеет два прошедших параметра - A и B.
Я хочу что-то вроде (псевдо код)
DELETE from Products
Where productId = A
if(B > 0)
{
AND ProductAttributeId = B
}
.
Очевидно, что это не понадобится бы фактической «если» пункт там, но это суть того, что я пытаюсь сделать с дозвуковой.Я знаю, что я могу просто иметь два разных запроса в зависимости от того, есть ли параметр там или нет, но мне было интересно, есть ли устойчивый способ сделать это.
спасибо.
Решение
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.