Pregunta

Estoy tratando de crear algunas funciones CRUD para una base de datos heredada y estoy usando Entity Framework como una herramienta ORM. Una tabla, 'Sitios', tiene una columna de 'Id' de tipo Guid que nunca es vista por los usuarios y un tipo de entero 'SiteId' que los usuarios usan para identificar un Sitio.

Para Dios sabe por qué la columna numérica SiteId es de tipo varchar (10) en la base de datos, pero cada SiteId allí es un número entero y todos los SiteIds futuros también serán enteros.

Con el fin de generar un SiteId de tipo entero nuevo y único, ¿cómo puedo hacer lo que es efectivamente un 'SELECT MAX (SiteId)' usando Entity SQL o Linq to Enities?

En otras palabras, ¿cómo puedo convertir cada valor en una columna de varchar (10) en un int y seleccionar el valor máximo de ese conjunto ??

Esto parecía prometedor pero linq no puede convertir el análisis en un " procedimiento de tienda " ...

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

Otros consejos

Esto funciona ...

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

var max = numbers.Max(x => Int32.Parse(x));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top