Sélectionnez Max dans Linq to Entities / Entity SQL avec conversion de type.

entity-framework linq max select type-conversion

Question

J'essaie de créer des fonctionnalités CRUD pour une base de données existante et d'utiliser Entity Framework comme outil ORM. Une table, "Sites", contient une colonne de type Guid "Id" qui n'est jamais vue par les utilisateurs et un type entier "SiteId" que les utilisateurs utilisent pour identifier un site.

Dieu sait pour quelle raison la colonne numérique SiteId est de type varchar (10) dans la base de données, mais chaque SiteId qu'il contient est un entier et tous les futurs SiteId seront également des entiers.

Dans le but de générer un nouveau type unique SiteId de type entier, comment puis-je faire ce qui est effectivement un 'SELECT MAX (SiteId)' en utilisant Entity SQL ou Linq to Enities?

En d'autres termes, comment puis-je convertir chaque valeur d'une colonne de varchar (10) en un int et sélectionner la valeur maximale dans cet ensemble?

Cela semblait prometteur mais linq ne peut pas convertir l'analyse en une "procédure de magasin" ...

int x = entities.Sites.Max(s => int.Parse(s.SiteId));

Réponse populaire

Cela marche...

String[] numbers = new String[] { "2", "34", "5", "23", "5", "1" };

var max = numbers.Max(x => Int32.Parse(x));


Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow