LINQ to entities ne reconnaît pas la méthode 'Int32 IndexOf(Système d'.Chaîne, Système.StringComparison) méthode de

J'ai exécuté une requête linq en utilisant Entityframework comme ci-dessous

GroupMaster getGroup = null;
getGroup = DataContext.Groups.FirstOrDefault(item => keyword.IndexOf(item.Keywords,StringComparison.OrdinalIgnoreCase)>=0 && item.IsEnabled)

lors de l'exécution de cette méthode, je suis d'exception comme ci-dessous

LINQ to entities ne reconnaît pas la méthode 'Int32 IndexOf(Système d'.Chaîne, Système.StringComparison) "méthode", et ce
la méthode ne peut pas être traduit dans un magasin d'expression.

Méthode contains() par défaut sensible à la casse donc je l'ai de nouveau besoin de les convertir à la baisse.Existe t'il une méthode pour vérifier qu'une chaîne correspond à d'autres que la méthode contains et existe t'il une méthode pour résoudre la méthode indexOf problème?

Je pourrait améliorer la réponse si vous exposer les champs connexes de votre DataContext.Groups objet.
Contains est transformé en LIKE de la déclaration dans les générées requête SQL. Fait de savoir si cette LIKE est sensible à la casse ou à la casse dépend de la configuration de base de données. Modifier votre base de données pour effectuer la casse de la chaîne de la comparaison et de l'utilisation Contains.
C'est une entité cadre datacontext où le Groupe est DbSet<Entité>
Si ce n'est pas une partie de SqlFunctions msdn.microsoft.com/de-de/library/... vous devez utiliser LINQ to obejects au lieu d'interroger les entités.
en fait à l'Intérieur contient la méthode je pense qu'ils sont de vérifier le même indice de fonctionnalité, alors pourquoi entityframework jeter l'exception.

OriginalL'auteur Code-EZ | 2014-04-22