LINQ to Entities ne reconnaît pas la méthode ‘Double Parse (System.Ssortingng)’ ne peut pas être traduite en une expression de magasin C # asp.net

J’essaie de commander les départements par numéro, mais comme le numéro de département est stocké sous forme de chaîne dans la firebase database, je ne peux pas simplement utiliser le classement par numéro. J’essaye de l’parsingr en float mais cela ne fonctionna pas. Ensuite, j’ai essayé de l’parsingr en tant que Double. Cela ne marche pas non plus. Aucune suggestion? Voici mon code.

using (var db = new Context()) { var datasource = (from x in db.Departments orderby double.Parse(x.DepartmentNumber) select x).ToList(); lvData.DataSource = datasource; lvData.DataBind(); } 

Merci pour la réponse, j’ai fait ce qui suit, mais les résultats ne sont pas entièrement corrects.

  var datasource = (from x in db.Departments orderby x.DepartmentNumber select x).ToList().OrderBy(Department => float.Parse(Department.DepartmentNumber)); 

entrez la description de l'image ici

Une solution serait la suivante:

 var datasource = db.Departments .ToList() .OrderBy(department => double.Parse(department.DepartmentNumber)); 

Vous récupérez toutes les données de la firebase database dans la mémoire de votre application (en appelant ToList , qui demande l’exécution immédiate de la requête.), Puis vous effectuez la commande en mémoire.

La raison pour laquelle la requête ci-dessous ne fonctionne pas:

 var datasource = (from x in db.Departments orderby double.Parse(x.DepartmentNumber) select x).ToList(); 

est le fait que double.Parse ne peut pas être traduit en une fonction équivalente dans SQL, puis la requête SQL entière soit soumise à la firebase database pour exécution.

En fait, ce qui suit a résolu le problème et fourni les résultats requirejs:

  var datasource = (from x in db.Departments orderby x.DepartmentNumber select x).ToList().OrderBy(Department => Convert.ToDouble(Department.DepartmentNumber, System.Globalization.CultureInfo.InvariantCulture)); 

entrez la description de l'image ici