2009-05-09 8 views
0

Je dois générer (et exécuter) une requête basée sur différentes conditions. Lorsque je construisais un SQL littéral à exécuter, cela signifiait concaténer des chaînes pour construire le SQL dynamiquement.Comment créer une requête dynamique avec SubSonic

Comment le ferais-je avec SubSonic? Si par exemple j'ai besoin d'ajouter une clause WHERE dans certains cas et un ORDER BY dans d'autres cas. Comment le code pour construire et exécuter cette requête devrait-il ressembler?

Répondre

3

Voici un exemple avec v2.1 + et BaseClass mis à 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>(); 
Questions connexes