Con risposta linq to entities dinamico

  • lunedì 5 marzo 2012 20:31
     
     

    salve a tutti ho un problema che non so come risolvere e spero che qualcuno possa aiutarmi

    in pratica ho un codice come questo

     Using ctx As New DatabaseEntities()

                Dim articolo = ctx.entita1.First(Function(c) c.Code = dato)

    Label1.Text = articolo.dato1
    Label2.Text = articolo.dato2

    io pero vorrei che la proprieta entita venga cambiata in modo dinamico

    come se la lista delle varie entita fosse contenuta in una dropdownlist (entita1, entita2, entita3) e articolo fosse il risultato della ricerca

    non so se mi sono spiegato bene ma il risultato che vorrei che ne uscisse è

    Dim articolo = ctx.(dropdownlist.selectedvalue).First(Function(c) c.Code = dato)

Tutte le risposte

  • lunedì 5 marzo 2012 20:59
    Postatore
     
     

    Effetivamente no, non è chiaro :).

    Se sviluppi applicazioni Windows forse ti riferisci al binding, se usi Windows Forms l'associazione (binding) tra dati e controlli non è così potente e spinta come in WPF/Silvelight attraverso il pattern MVVM (Model-View-ViewModel).

    Anche in applicazioni web, attraverso MVC (Model-View-Controller), puoi avere il binding.

    Il binding è meccanismo che consente di associare dati alla UI e ottenere "live" sui dati le modifiche che l'utente apporta tramite l'interfaccia grafica in modo più o meno complesso.

    Intendi questo?


    Matteo Migliore

    Bloghttp://blogs.ugidotnet.org/matteomigliore
    Twitterhttp://twitter.com/matteomigliore
    CodePlex

  • mercoledì 7 marzo 2012 17:40
     
     

    scusami, vediamo se riesco a spiegarmi meglio

    in un sito web che sto creando ho una dropdownlist con una lista di entita, (entita1 entita2 entita3)

    con una funzione inserisco in due label dei dati della entita selezionata nella dropdownlist al click di un pulsante in questo modo

    Using ctx As New DatabaseEntities()

    dim dato as string=label1.text

                Dim articolo = ctx.entita1.First(Function(c) c.Code = dato)

    Label2.Text = articolo.dato1
    Label3.Text = articolo.dato2

    end using

    ovviamente questo funziona se dropdownlist.selectedvalue=entita1 ma se invece fosse entita2 o entita3?

    dovrei fare una cosa di questo genere

    dim dato as string=label1.text

       Select Case dropdownlist.selectedvalue

    case "entita1"

    Using ctx As New DatabaseEntities()

    dim dato as string=label1.text

                Dim articolo = ctx.entita1.First(Function(c) c.Code = dato)

    Label2.Text = articolo.dato1
    Label3.Text = articolo.dato2

    end using

    case "entita2"

    Using ctx As New DatabaseEntities()

    dim dato as string=label1.text

                Dim articolo = ctx.entita2.First(Function(c) c.Code = dato)

    Label2.Text = articolo.dato1
    Label3.Text = articolo.dato2

    end using

    .............

    end select

    dato1 e dato2 sono delle proprieta contenute con lo stesso nome e stesso tipo in tutte e entita ma con valore diverso

    come posso fare per non utilizzare una select in questo modo e quindi accorciare il codice?

  • mercoledì 7 marzo 2012 17:53
    Postatore
     
     Con risposta
    Se Entita1 e Entita2 implementassero un'interfaccia comune potresti sfruttarla per estrarre tutte le entity senza fare switch.

    Con EntityFramework però non mi sono mai spinto "così avanti".

    Ho trovato questo, mai provato:
    http://stackoverflow.com/questions/353284/class-and-interface-hierarchies-in-entity-framework

    Matteo Migliore

    Bloghttp://blogs.ugidotnet.org/matteomigliore
    Twitterhttp://twitter.com/matteomigliore
    CodePlex

    • Contrassegnato come risposta jetri mercoledì 14 marzo 2012 20:04
    •