Maison >développement back-end >C++ >Comment résoudre l'incapacité d'Entity Framework à traduire Double.Parse() ?
Problème de conversion d'Entity Framework : impossible de traduire Double.Parse
Lorsque vous travaillez avec LINQ to Entities, il est important de noter que toutes les méthodes ne pris en charge dans LINQ to Objects peuvent être directement traduits en requêtes SQL. Une erreur courante est l'incapacité d'utiliser Double.Parse() dans les instructions LINQ to Entities.
Résoudre le problème de Double.Parse()
Pour résoudre ce problème , vous pouvez définir une méthode personnalisée qui effectue l'analyse et la traduire en SQL valide à l'aide d'une fonction définie dans le fichier *.edmx.
Exemple :
Définissez la traduction SQL :
Dans la section ConceptualModels de votre fichier *. fichier edmx, ajoutez la fonction suivante définition :
<Function Name="ParseDouble" ReturnType="Edm.Double"> <Parameter Name="stringvalue" Type="Edm.String"></Parameter> <DefiningExpression> cast(stringvalue as Edm.Double) </DefiningExpression> </Function>
Créez la méthode personnalisée dans le code :
Dans votre classe partielle ObjectContext (généralement générée par l'EDMX), ajoutez la méthode suivante :
public static double ParseDouble(string stringvalue) { return Double.Parse(stringvalue); }
Cette méthode servira de stub lors des requêtes LINQ et sera traduite en instruction SQL CAST défini dans l'EDMX.
Exemple (application de la méthode personnalisée) :
Dans votre instruction LINQ, remplacez toutes les instances de Double.Parse( ) avec YourObjectContext.ParseDouble() pour utiliser la méthode personnalisée et permettre la traduction en SQL.
Supplémentaire Considérations :
Gardez à l'esprit que Math.Round() peut également nécessiter une approche similaire si elle n'est pas prise en charge par Entity Framework dans le contexte spécifique. Utilisez la liste des fonctions canoniques EDM pour déterminer la fonction SQL appropriée à définir.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!