Je crée un SqlQuery pour prendre en charge un écran de requête ad-hoc.SubSonic 2.1 SqlQuery multiple Où() s?
Je veux quelque chose comme ceci:
SqlQuery q = new Select().From<VwInstitutes>();
if (!string.IsNullOrEmpty(username))
{
q.Where(VwInstitutes.Columns.AssignedUser).IsEqualTo(username);
}
if (!string.IsNullOrEmpty(stage))
{
q.Where(VwInstitutes.Columns.Stage).IsEqualTo(stage);
}
Mon problème est - la fixation multiple where() s ne semble pas fonctionner - est-ce exact?
Alors maintenant j'écris ceci, mais c'est plutôt moche.
if (!string.IsNullOrEmpty(username))
{
if (q.HasWhere) q.And(VwInstitutes.Columns.AssignedUser).IsEqualTo(username);
else q.Where(VwInstitutes.Columns.AssignedUser).IsEqualTo(username);
}
if (!string.IsNullOrEmpty(stage))
{
if (q.HasWhere) q.And(VwInstitutes.Columns.Stage).IsEqualTo(stage);
else q.Where(VwInstitutes.Columns.Stage).IsEqualTo(stage);
}
Dites-moi s'il vous plaît qu'il existe un meilleur idiome pour ce scénario. Merci!
merci ranomore. Oui, j'ai oublié ce vieux truc de sql. Je pense que c'est un peu moche aussi - en ce sens qu'il ne contribue pas à la sémantique de la requête - mais c'est MOINS moche que la façon dont je le faisais. Comme l'affiche dans le fil que vous avez lié, je me demande ce qui est arrivé à AddWhere() .... –