Entity Framework - Problème Encoding sur clause WHERE
Bonjour,
j'apprend à me servir de l'Entity Framework et de ses fonctionnalités.
J'ai un petit problème quand j'essaie d'effectuer une requete SELECT avec une clause WHERE car la valeur que je teste n'a apparament pas le bon encodage..
Voyez plutôt:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| 'Contains
Public Function Contains(ByVal key As String, ByVal value As Object) As Boolean
'key = "Filename" & value = "F:\VIDEO\Films\Ah ! si j'étais riche.avi"
Dim srcEncoding As Encoding = Encoding.Unicode
Dim destEncoding As Encoding = Encoding.ASCII
Dim valueEncoded As String = EncodeConvert(srcEncoding, destEncoding, value)
'valueEncoded = "F:\VIDEO\Films\Ah ! si j'?tais riche.avi"
Dim tableName As String = Me.ObjSet.EntitySet.EntityContainer.Name + "." + Me.ObjSet.EntitySet.Name
'tableName = "videosEntites.Movie"
Dim queryString As String = "SELECT VALUE m FROM " + tableName + " AS m WHERE m." + key + " = '" + valueEncoded + "'"
Dim oq = New ObjectQuery(Of T)(queryString, ObjContext)
Return (oq.ToList.Count > 0) '<--- Exception à chaque fois quand il y a un caractère qui ne lui plait pas ("é", "?", etc.) :P
End Function |
EntitySQLException:
Citation:
La syntaxe de requête n'est pas valide. Rapproché terme '?'
J'ai essayé plusieurs encodages mais ça plante toujours quand il y a des caractères "non latins de base" je crois.
Auriez vous une idée?