2010-10-20 13 views
6

So che il metodo .Contains() fa come LIKE %therm%, il metodo .StartsWith() fa come LIKE therm% e il metodo .EndsWith() come LIKE %therm ma ...come con LINQ to Entities

C'è un modo per fare come qui di seguito su **Linq to Entities**?

SELECT * FROM [dbo].[Users] WHERE Name LIKE 'rodrigo%otavio%diniz%waltenberg' 

PS: STO UTILIZZANDO LINQ IN ENTITÀ. NON LINQ TO SQL

+0

Eventuali duplicati di [? Come utilizzare SQL 'LIKE' con LINQ to Entities] (http://stackoverflow.com/questions/3095781/how-to-use-sql-like -with-linq-to-entities) –

risposta

2

Sì, you can do this with ESQL/Query Builder sintassi:

var matching = Context.Users.Where("it.Name LIKE 'rodrigo%otavio%diniz%waltenberg'"); 
+2

Ha funzionato! Grazie! –

+0

Apparentemente questo ha smesso di funzionare con EF 6 – Tod

2

Questo dovrebbe fare il trucco.

from u in context.users 
    where System.Data.Linq.SqlClient.SqlMethods.Like(
     u.Name, 
     "rodrigo%otavio%diniz%waltenberg") 
    select u 

Edit:
Si scopre questo funziona solo con LINQ2SQL, non LINQ2Entities. Linq SqlMethods.Like fails suggerisce che è possibile utilizzare Where direttamente sul tavolo.

+3

Eccezione: LINQ to Entities non riconosce il metodo metodo "Boolean Like (System.String, System.String)" e questo metodo non può essere tradotto in un'espressione di archivio. –

+0

@Rodrigo: Hmmm, l2e funziona per chiudere a l2s per confondere ... Ho aggiornato la mia risposta con un linq a un'altra domanda che potrebbe essere utile. –

-1

ne dite di usare le espressioni regolari con la sua dichiarazione LINQ? Qualcosa di simile a quanto segue:

 RegularExpressions.Regex p 
      = new RegularExpressions.Regex("rodrigo%otavio%diniz%waltenberg"); 

     using (DataContext.MyDataContext context = new MyDataContext()) 
     { 
      var result = from u in context.users 
         where p.IsMatch(u.name) 
         select u; 
     } 
+4

Eccezione: LINQ to Entities non riconosce il metodo 'Boolean IsMatch (System.String)' e questo metodo non può essere tradotto in un'espressione di archivio. –

Problemi correlati