Problème avec LINQ to Entities et String.StartsWith

.net entity-framework linq linq-to-entities

Question

J'essaye de construire une page de recherche en utilisant LINQ to Entities, mais le code suivant me donne une erreur d'exécution sur lte ne reconnaissant pas 'Boolean StartsWith (). Le code compile très bien. Comment puis-je résoudre ce problème mieux que d'envoyer le filtrage StartsWith à un proc stocké?

    return from dp in dents.DirectoryPersonEntrySet
           where
               ((dp.LastName.StartsWith(searchTerm, StringComparison.CurrentCultureIgnoreCase)) ||
                (dp.Department.StartsWith(searchTerm, StringComparison.CurrentCultureIgnoreCase)) ||
                dp.Extension.StartsWith(searchTerm, StringComparison.CurrentCultureIgnoreCase))
           select dp;

Réponse acceptée

Je suppose que EF ne prend pas en charge la surcharge de StartsWith qui prend un paramètre StringComparison.

Il devrait prendre en charge StartsWith , EndsWith et Contains , alors vous pouvez peut-être essayer:

dp.LastName.StartsWith(searchTerm)

ou:

dp.LastName.ToLower().StartsWith(searchTerm)

puis assurez-vous que searchTerm est également en minuscule.



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow