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.
Ici je recherche tous les produits contenant un certains motif.
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));
Or si j'utilise une égalité stricte comme ceci je n'ai pas d'erreur.
Ceci est la méthode appelée côté serveur.
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));
Je suis pour le moins perplexe. Je pensais vraiment que EF utilisait des requêtes paramétrées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public IQueryable<Product> GetProduct() { return this.ObjectContext.product; }
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 !
Partager