Ciao, i metodi da te proposti funzionano.. giusto per non limitarmi ad un copia incolla inutile vorrei farti alcune considerazioni:
. Alternativa 1 =>
<asp:Label ID="Label1" runat="server" OnLoad="GetFirst" />
Con inserimento del metodo nel codefile della pagina: direi di escluderlo, essendo una applicazione n-tier verrebbero a meno le regole che governano l'applicazione, i manager vanno nella Business logic e quindi non hanno spazio nella Presentation.
. Alternativa 2 =>
Utilizzo dell'oggetto <asp:Repeater> al posto di <asp:Formview> e metodo che ritorna:
1) IEnumerable
public IEnumerable<string> GetFirst()
{
ISession session = SessionHelper.OpenSession();
return session.CreateSQLQuery("Select squadra as First from qr_classifica where NotificationRank=1").List<string>().Take(1);
}
Il metodo Enumerable.Take mi permette di definire il numero di elementi che verranno restituiti, ma sapendo a priori che dovrò avere necessariamente sempre e solo un oggetto mi sembra sconsigliabile in questo caso.
2)public Ilist IList<RankingManager> GetFirst()
In questo caso di tratta di collection personalizzate e quindi di appoggiarmi al mio dominio. Questa scelta sarebbe a mio parere la migliore per come è strutturata l'applicazione, cioè n-tier+nhibernate, però non saprei come fare dato che la query diretta sul db mi restituirà sempre e solo un campo calcolato.
3) public IList<string> GetFirst()
In questo caso mi faccio tornare una oggetto generico list già castato.
Io opterei per questo terza opzione, ma vorrei sapere se esiste una regola generale sul bind attraverso nhibernate su oggetti asp.net
GRAZIE PER L'AIUTO!