Как построить динамический запрос с SubSonic - PullRequest
0 голосов
/ 09 мая 2009

Мне нужно построить (и запустить) запрос, основанный на различных условиях. Когда я строил буквальный SQL для запуска, это означало бы объединение строк для динамического построения SQL.

Как бы я это сделал с SubSonic? Если, например, мне нужно добавить предложение WHERE в некоторых случаях и ORDER BY в других случаях. Как будет выглядеть код для создания и выполнения этого запроса?

1 Ответ

3 голосов
/ 09 мая 2009

Вот пример с v2.1 + и BaseClass, установленным в RepositoryRecord:

var q = DB.Select().From<Product>();

if (someCondition) 
    q.Where(Product.ProductIdColumn).IsEqualTo(1);

if (order == "ASC")
    q.OrderAsc(Product.Columns.ProductId)
else
    q.OrderDesc(Product.Columns.ProductId)

var results = q.ExecuteAsCollection<ProductCollection>();
...