2009-09-23 10 views
2

J'ai un problème avec un moteur de recherche comme nous le voyons parfois sur place. J'ai une grande liste de dit, personne. La façon de filtrer une liste de: "#, A, B, C, D, E, [...]". Le problème Je l'ai quand j'exécute de requête avec EF, une erreur apparaît. Voici mon code.LINQ et EF avec string.StartWith (char c)

code:

var query = from p in m_context.Persons 
      where char.IsDigit(p.Name, 0) 
      select a; 

L'erreur indique qu'il est impossible de le convertir en une expression valide contre la base de données. Alors, y a-t-il un moyen de le faire?

Merci mec.

MISE À JOUR =======================

Voilà mon erreur.

LINQ to Entities ne reconnaît pas la méthode 'Boolean Contains [Char] (System.Collections.Generic.IEnumerable`1 [System.Char], Char)' et cette méthode ne peut pas être traduite dans une expression de magasin.

Répondre

3

Je pense avoir trouvé la solution:

var query = m_context.Persons.Where("substring(it.Name, 1, 1) in MULTISET('0','1','2','3','4','5','6','7','8','9')"); 

Références:

Entity SQL Quick Reference

+0

Il travaille! Merci beaucoup! –