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.dato2io 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:59Postatore
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.dato2end 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.dato2end 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.dato2end 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:53Postatore
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-frameworkMatteo Migliore
Bloghttp://blogs.ugidotnet.org/matteomigliore
Twitterhttp://twitter.com/matteomigliore
CodePlex- Contrassegnato come risposta jetri mercoledì 14 marzo 2012 20:04

