Sensible je une table qui le nom Post
qui a une colonne nommée key
:Entity Framework cas de requête
Id | Key | Title
--------------------
1 | WM | First
--------------------
2 | wm | Second
Comme vous pouvez le voir la première valeur key
d'un Post
est WM
(Majuscule) et la seconde valeur key
est wm
(minuscule).
Lorsque j'exécute la requête avec le code suivant:
var post = await _posts.Where(o => o.Key == key).Select(o => new
{
id = o.Id,
title = o.Title
}).SingleOrDefaultAsync();
Je passe le key
avec une valeur (wm et WM), mais obtenir un résultat. Le deuxième (wm).
J'ai cherché la solution et trouvé ce question et ce answer. Après avoir essayé d'utiliser la réponse et mettre en œuvre l'annotation de données [CaseSensitive]
lorsque je recherche wm
je reçois le premier message et quand je recherche WM
je reçois null
. Comment puis-je résoudre ce problème et obtenir un message adéquat avec la clé?
Mise à jour: Generated SQL Query:
SELECT [Limit1].[C1] AS [C1],
[Limit1].[Id] AS [Id],
[Limit1].[Title] AS [Title]
FROM (SELECT TOP (2) [Extent1].[Id] AS [Id],
[Extent1].[Title] AS [Title],
1 AS [C1]
FROM [dbo].[Posts] AS [Extent1]
WHERE ([Extent1].[Key] = 'wm' /* @p__linq__0 */)
OR (([Extent1].[Key] IS NULL)
AND ('wm' /* @p__linq__0 */ IS NULL))) AS [Limit1]
Avez-vous vérifié pour vous assurer que votre colonne DB configuration était avec le classement correct? Personnellement je m'en tenir à faire '.Where (o => o.Key == clé) .AsEnumerable(). Où (o => o.Key == clé)'. – juharr
Vérifiez dans votre base de données quel est le type de votre colonne 'Key'. –
@ m.rogalski string –