Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    86

    [VB.NET 2008 Beta 2] Query.ToList -> to Object

    Ciao a tutti!!
    Innanzitutto ringrazio chiunque per la disponibilità ed a coloro che risponderanno!!

    Sto usando il vb.net 2008 Beta 2, il nuovo entity framework ed il Linq.

    Ho creato una classe che svolge,con una query (ovviamente!), una ricerca all'interno del mio db. La funzione di questa classe non può essere dichiarata come una

    Function XXX() as List (of Tabella)

    in quanto il risultato che ne viene, è una combinazione di più campi presi da varie tabelle del db -> in altre parole è una "collezione" di info!
    Pertanto per ovviare a questo problema ho dichiarato la funzione all'interno della classe come un oggetto, ossia:

    Function XXX() as List (of Object).

    Il fatto è che la query in quanto tale restituisce come risultato della select una lista.

    Ciò che vi chiedo, è se è possibile e come poter restituire al chiamante di questa classe, il risultato uscito dalla query (una lista quindi), sottoforma di oggetto.

  2. #2
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,582
    restituirti un oggetto...si ma di che tipo?
    object è un tipo primitivo, tutti i tipi derivano da object

    tecnicamente potresti passargli un datatable..ma poi ti tocca sempre fare una conversione per gestirlo

    non fai prima a fare una funzione che restituisce direttamente un datatable???
    troppo facile eh? :rollo:
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Io non ho capito, onestamente, quello che si sta cercando di ottenere, o almeno non ne sono sicuro.

    Hai usato una sintassi che sfrutta i Generics per restituire un oggetto generico, e la lista dovrebbe essere il "resultset" di una query?

    Eventualmente, spiega qual è il tuo scopo, senza correggere codice che magari abusa di strumenti forniti dal framework... vedremo eventualmente di suggerirti noi una soluzione adatta a ciò che vuoi ottenere.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    86
    Ho trovato il modo di restituire ciò che volevo, come volevo!!
    So perfettamente che ho aggirato il problema e che non è il massimo ma non potevo fare altrimenti visto che non vi era altro modo.

    Allora: dato che i dati contenuti all'interno di una query sono memorizzati sotto forma di lista, ho creato la mia funzione come una datatable, ho fatto la mia query e poi gli ho passato i campi uno per uno, restituendo al chiamante una datatable ovviamente.
    Ossia:

    Public Function X(...) As DataTable
    Try
    Using connection As New "Modello"

    Dim query = From ...
    Where ...
    Select 1, 2, 3, 4

    Dim dt_ As New DataTable
    Dim colonne As New DataColumn
    dt_.Columns.Add("a")
    dt_.Columns.Add("b")
    dt_.Columns.Add("c")
    dt_.Columns.Add("d")
    dt_.Columns.Add("e")

    For Each campi In query
    dt_.Rows.Add(campi.1, campi.2, campi.3, campi.4)
    Next
    Return dt_
    End Using
    Catch ex As Exception
    MessageBox.Show(ex.Message, "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Return Nothing
    End Try
    End Function

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Continuo a non capire tutta questa fatica, ma se hai risolto, tanto meglio.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.