Domanda

Sto cercando di creare alcune funzionalità CRUD per un database legacy e utilizzo Entity Framework come strumento ORM. Una tabella, "Sites", ha una colonna "Id" di tipo Guid che non viene mai vista dagli utenti e un tipo intero "SiteId" che gli utenti utilizzano per identificare un sito.

Per dio sa quale motivo la colonna SiteId numerica è di tipo varchar (10) nel database, ma ogni SiteId in esso è un numero intero e anche tutti i SiteId futuri saranno numeri interi.

Allo scopo di generare un SiteId nuovo, unico, di tipo intero, come posso fare ciò che è effettivamente un 'SELECT MAX (SiteId)' usando Entity SQL o Linq to Enities ??

In altre parole, come posso convertire ogni valore in una colonna da varchar (10) in un int e selezionare il valore massimo da quell'insieme ??

Sembrava promettente ma linq non è in grado di convertire l'analisi in " procedura di memorizzazione " ...

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

Altri suggerimenti

Funziona ...

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

var max = numbers.Max(x => Int32.Parse(x));
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top