2009-05-13 7 views
0

Voici mon code:Comment faire un ou sélectionner lors de l'utilisation de subsonic?

TransactionCollection transactions = new TransactionCollection(); 
transactions.Where("next_action", "RESEND"); 
transactions.Where("job_id", CurrentJob.Id); 
transactions.Load(); 

Je veux vraiment dire next_action est RENVOYER ou next_action est TARGET. Merci.

Fondamentalement, je veux une sélection statemnt comme ceci:

select * from transactions where job_id = 1 and (next_action = 'RESEND' OR next_action = 'TARGET'); 

ou

select * from transactions where job_id = 1 and next_action IN ('RESEND', 'TARGET'); 

Répondre

2

Si vous êtes sur la version 2.1 subsonique ou au-dessus, vous pouvez profiter de la AndExpression et OrExpression. Pour votre premier exemple, les éléments suivants devraient fonctionner:

TransactionCollection transactions = DB.Select().From(Transaction.Schema) 
    .Where("job_id", CurrentJob.Id); 
    .AndExpression("next_action")IsEqualTo("RESEND") 
    .Or("next_action")IsEqualTo("TARGET") 
    .ExecuteCollection<TransactionCollection>() 
+0

Consultez http://subsonicproject.com/querying/select-queries/ pour plus d'exemples –

Questions connexes