Pergunta

Eu estou tentando criar algumas funcionalidades CRUD para um banco de dados legado e usando o Entity Framework como uma ferramenta ORM. Uma mesa, 'Sites', tem um tipo Guid coluna 'id' que nunca é visto pelos usuários e um tipo inteiro 'SiteID', que os usuários usam para identitfy um site.

Porque Deus sabe que razão a coluna SiteID numérico é do tipo varchar (10) no banco de dados, mas cada SiteID lá é um inteiro e todos os siteIds futuras também serão inteiros.

Para a finalidade de gerar um novo, original, tipo inteiro SiteID, como posso fazer o que é efetivamente um 'SELECT MAX (SiteID)' usando Entity SQL ou LINQ para Enities ??

Em outras palavras, como posso converter todos os valores em uma coluna de varchar (10) em um int e selecione o valor máximo a partir desse conjunto ??

Este parecia promissora, mas linq não pode converter o parse em um "procedimento de armazenamento" ...

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

Outras dicas

Isso funciona ...

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

var max = numbers.Max(x => Int32.Parse(x));
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top