L’obiettivo è la costruzione di un metodo (sia esso public, protected o private)
che ci consenta di estrarre una lista di stringhe.
La signature del nostro metodo sarà :
1 | public List<string> getMyString() |
Nel caso specifico vogliamo estrarre un set di dati rappresentati
da una e sola colonna di una tabella del nostro database.
Istintivamente, ci verrebbe da scrivere un pezzo di codice del tipo:
1 2 3 | var q = from t in context.myentity select new { Codice = t.mycodice }; List<string> listaCodici = q1.ToList(); |
Ovviamente è errato, sintatticamente e semanticamente.
Non è corretto supporre che, essendo il campo mycodice, un campo varchar, esso venga poi rimappato in un insieme di stringhe. Il compilatore, quindi, tornerà il seguente errore:
Cannot implicitly convert type
‘System.Collections.Generic.List<anonymoustype #1>’ to ‘System.Collections.Generic.List<string>’
Esistono due diverse strade per ottemperare al nostro obiettivo.
La prima è quella di definire una struct o una classe customizzata che contenga al suo interno la property, stringa, che andremo poi a valorizzare estraendo i dati dal database tramite LINQ.
La seconda è quella di scrivere un pezzo di codice come:
1 2 3 4 5 | var q = from t in context.myentity let codici = new { t.mycodice } select codici; List<string> listaCodici = (from c in q select c.mycodice).ToList(); |