2009-10-16 8 views
3

SELECT * FROM clients WHERE nom LIKE '[a-f]%'Linq équivalent à SQL LIKE [a-f]

Comment puis-je acheive cela dans Linq ??

En d'autres termes, dans linq comment puis-je sélectionner tous les noms entre a et f ??

Merci,

Répondre

8

Il y a une classe d'aide appelée SqlMethods dans l'espace de noms System.Data.Linq.SqlClient qui fournit une méthode Like qui émule l'instruction SQL LIKE.

Votre requête serait:

var query = from c in Customers 
      where SqlMethods.Like(c.Name, "[a-f]%") 
      select c; 
+0

+1, une grande trouvaille. –

1

Vous pouvez utiliser la classe C# Regex pour apparier les enregistrements:

var selectedCustomers = from customer in customers 
       where Regex.Match(customer.Name, "^[a-f].*$").Success 
       select customer; 
+0

Cela ne peut pas être tanslated dans une requête SQL par LINQ to SQL – SLaks