Дозвуковой - запрос с необязательными параметрами - PullRequest
0 голосов
/ 31 марта 2011

Использование C # 3.5 до VS 2008 и дозвуковой 2.2. Кто-нибудь знает, возможно ли создать дозвуковой запрос, который по сути имеет «IF» в середине, в зависимости от того, был ли переданный параметр, например, больше нуля.

Например, метод удаления с двумя переданными параметрами - A и B.

Я хочу что-то вроде (псевдокод)

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

Очевидно, что здесь не нужно фактическое предложение «IF», ​​но в этом суть того, что я пытаюсь сделать с дозвуковым. Я знаю, что у меня может быть два разных запроса в зависимости от того, есть ли параметр или нет, но мне было интересно, есть ли более чистый способ сделать это.

Спасибо.

1 Ответ

0 голосов
/ 31 марта 2011

Обычно я так делаю - это не два запроса, а один 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();

Может быть опечатка, сейчас я не могу это проверить.

...