SubSonic 2.1 SqlQuery multiple Où () s?
Question
Je construis un SqlQuery pour prendre en charge un écran de requête ad-hoc.
Je veux quelque chose comme ça:
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 de - attacher plusieurs Where () ne semble pas fonctionner - est-ce correct?
Alors maintenant, j'écris ceci, mais c'est assez 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);
}
S'il vous plaît, dites-moi qu'il existe un meilleur langage pour ce scénario. Merci!
La solution
Commencez votre requête par un emplacement où la valeur est toujours vraie.
new Select().From().Where("1").IsEqualTo("1");
puis construisez le reste de la requête avec q.And. Voir ce fil également.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow