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!

Était-ce utile?

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
scroll top