7
votes

Pas comme à Linq à SQL

Je dois sélectionner des données à partir de la base de données à l'aide de LINQ à SQL. Il y a une condition que je ne puisse sélectionner que l'enregistrement avec ID pas contenant "0000" au début (numéro d'identification entier comporte six chiffres).

Par exemple lorsque je voudrais sélectionner des données à partir de " 0000 "J'utiliserai: xxx

mais je dois utiliser la méthode plus comme NotStartsSwith ou NotContains au lieu de StartSwith . Est-ce possible?


1 commentaires

Bah c'était tellement évident. Dommage sur moi; (. En attendant, j'ai fait quelque chose comme: Func Selctor = str =>! Str.startswith ("0000"); et ajouté ce délégué dans . Où (Selctor); à la fin de cette requête LINQ. Mais OFC NIGate est beaucoup plus simple. Merci!


5 Réponses :


7
votes

Avez-vous essayé ! s.id.startswith ("0000") ? (c'est-à-dire à l'aide de opérateur de négation ! )


0 commentaires

3
votes
var idList = (from s
    in db.TABLE
    where !s.ID.StartsWith("0000")
    select s.ID
    );

0 commentaires

3
votes

StartSwith retourne une valeur booléenne. Donc, vous pouvez simplement nier la startwith. Votre requête doit être comme ci-dessous; xxx


0 commentaires

2
votes

Bien sûr .. Ajoutez simplement un opérateur de négation logique (!) Devant la déclaration StartSwith:

! s.is.startswith ("0000")


0 commentaires

0
votes

Heres une méthode d'extension pratique xxx


0 commentaires