Bonsoir.

Je travail avec Entity Framework 5, Silverlight 5, WCF RIA Services, MySQL 5.6 and MySQLConnector 6.5.6.

J'ai découvert que la portion de code suivant générait des erreurs de syntax côté serveur MySQL lorsque dans la chaîne de caractère passée en paramètres il y a une quote.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
DomainContext.Load<Product>(DomainContext.GetProductQuery()
                                         .Where<Product>(p => p.name.Contains(parameter))
                                         .Take<Product>(30));
Ici je recherche tous les produits contenant un certains motif.
Or si j'utilise une égalité stricte comme ceci je n'ai pas d'erreur.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
DomainContext.Load<Product>(DomainContext.GetProductQuery()
                                         .Where<Product>(p == parameter)
                                         .Take<Product>(30));
Ceci est la méthode appelée côté serveur.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
public IQueryable<Product> GetProduct()
{
    return this.ObjectContext.product;
}
Je suis pour le moins perplexe. Je pensais vraiment que EF utilisait des requêtes paramétrées.
Je ne vois vraiment pas comment résoudre ce problème.
Réécrire des centaines de méthodes côté service pour inclure un filtre avec un résultat hasardeux me parait pour le moins risqué.

Toute aide sera vraiment grandement appréciée.
Bonne soirée à tous !