LINQ to entities Contient de Cas Dans la Recherche Sensible à la casse
je suis en train de ma requête resultset comme cela dans linq to entities;
var categoriesList = _catRepo.GetAllCategories();
filteredCategories = categoriesList.Where(c=> c.CategoryName.Contains("for"));
Cependant, je n'obtiens aucun résultat parce que la CategoryName
est For(Upper Case)
dans la base de données. J'ai aussi vérifié le classement sql server et il est mis à _CI_AS. Je n'ai aucune idée de comment utiliser contient de filtre chaîne casse?
Je veux en gros, si quelqu'un de ce type;
filteredCategories = categoriesList.Where(c=> c.CategoryName.Contains("for"));
OU
filteredCategories = categoriesList.Where(c=> c.CategoryName.Contains("For"));
Le résultat devrait être le même
Est-ce répondre à la question? stackoverflow.com/questions/3360772/...
il se complique pas de travail pour moi
Je pense que normalement fonctionne avec le classement que vous dites. Êtes-vous sûr que
Ce type est
Bon, alors ce n'est RIEN à voir avec la bd. Vous êtes à la récupération de toutes les entités de retour à partir de la base de données et que vous voulez faire un mémoire de filtre.
il se complique pas de travail pour moi
Je pense que normalement fonctionne avec le classement que vous dites. Êtes-vous sûr que
categoriesList
est un DB requête et pas un déjà interrogé dans la mémoire de liste (dans ce cas, votre expression de ne pas être traduite en sql). Aussi, si vous suivez les requêtes db à ce point, ce que SQL est généré?Ce type est
filteredCategories
? Pouvez-vous montrer à la déclaration de la variable?Bon, alors ce n'est RIEN à voir avec la bd. Vous êtes à la récupération de toutes les entités de retour à partir de la base de données et que vous voulez faire un mémoire de filtre.
OriginalL'auteur DotNet Dreamer | 2013-03-12
Vous devez vous connecter pour publier un commentaire.
Essayer cette
Contient méthode fonctionne comme indiqué ci-dessous
msdn.microsoft.com/en-us/library/ms224425.aspx
Cela ne fonctionnera pas si l'on travaille directement sur EF objets. Peut pas traduire
IndexOf()
Ne fonctionne pas avec Entity Framework 5. LINQ to entities ne reconnaît pas la méthode 'Int32 IndexOf(Système d'.Chaîne, Système.StringComparison)', et cette méthode ne peut pas être traduit dans un magasin d'expression
OriginalL'auteur
La précédente
IndexOf
réponse devrait fonctionner. Parce que vous êtes le chargement de toutes les entités de la base de données et ensuite de faire un mémoire (linq to objects) filtre sur elle, vous n'êtes pas à faire quoi que ce soit sur la base de données.Cela devrait également fonctionner (à partir du post que j'ai référencé)
Juste une parenthèse, si vous avez un grand nombre de catégories, vous pouvez les filtrer sur la base de données, plutôt que de chercher de l'ensemble de la db et puis les filtrer dans la mémoire..
Ouais je sais, j'étais simplement offrir à celui-ci est complet 🙂
Ce n'est pas passer de la Turquie d'Essai moserware.com/2008/02/does-your-code-pass-turkey-test.html
Vraiment comme cette solution simple, merci!
OriginalL'auteur