Chaîne de caractères.Equals() ne fonctionne pas comme prévu

Je suis à l'aide de LINQ to recherche par le biais de l'un de mes Entité Cadre de tables et de trouver un "groupe", basé sur le nom. Le nom est une chaîne de caractères et semble être en Unicode (dit il est dans l'edmx). J'ai une méthode GetGroup() et je passe un nom à rechercher. Débogage dans le code, j'ai déjà un groupe nommé "Test" dans ma base de données. Une fois que je passe dans un groupe nommé "TEST" je m'attends à un retour du "Test", qui était déjà dans la base de données. Pour une raison quelconque, ne trouve pas le "Test" et pense que "TEST" n'existe pas. Voici ma requête, je ne vois pas pourquoi il ne fonctionne pas. S'il vous plaît aider.

"nom" est le passé dans le nom du groupe. Mon .Equals semble ne fonctionner que si le gr.Name et le nom sont exactement les mêmes. Si un personnage est capital dans l'une des deux cordes, puis les .Équivaut ne fonctionne pas. J'ai essayé d'utiliser InvariantCultureIgnoreCase, et qui ne semble pas aider. Dans le cas où quelqu'un demande, le MyLeagueId et LeagueId sera toujours à la hauteur, de la base de données est configuré de sorte qu'il peut être un groupe dans une ligue différente id. Je ne pense pas que ce soit le problème.

Group g = (from gr in this.DatabaseConnection.Groups
           where gr.Name.Equals(name, StringComparison.OrdinalIgnoreCase) &&
           gr.LeagueId == this.MyLeagueId
           select gr).FirstOrDefault();
  • Êtes-vous sûr que l'on ne dispose pas d'un espace à la fin/début que l'autre n'ont pas?
  • Si les Groupes de la table n'est pas trop gros, alors qu'un test, pouvez-vous essayer de modifier la requête pour ... à partir de fr dans cette.DatabaseConnection.Groupes de.ToList() ...
InformationsquelleAutor Travyguy9 | 2011-02-22