Je passe un modèle de filtre à mon service. L'utilisateur peut sélectionner any
qui est null
ou une chaîne vide. Comment puis-je mettre en place une requête unique .Where
qui sait ignorer ce filtre?Filtre LINQ spécifique ou tous
Un exemple:
public class UserFilterModel
{
public string State {get; set;};
public string Age {get; set;};
}
Le filtre: (? Comment puis-je mieux répondre à mes besoins)
var result = context.Users.Where(u => u.State == filter.State && u.Age == filter.Age);
Donc, si l'utilisateur sélectionne nul ou vide pour State
, cela actuellement retourne des enregistrements avec des états vides ou vides quand je veux réellement ignorer ce filtre.
En outre, j'utilise asp.net mvc 2, je suis en train de faire quelque chose de complètement faux, s'il vous plaît dites-moi. Utilisation du modèle de référentiel
Qu'en est-entiers, si elle est 0, comment puis-je gérer cela? –
@Shawn McLean: Vous voulez dire si vous avez une propriété (disons 'DriverLicenseNumber') et que vous voulez ignorer' DriverLicenseNumber' si 'filter.DriverLicenseNumber == 0' est' true'? Simplement '(filter.DriverLicenseNumber == 0 || u.DriverLicenseNumber == filter.DriverLicenseNumber)'. Le but est d'utiliser le court-circuit à votre avantage. – jason