Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [VB2010] Entity framework e binding combobox

    Buongiorno a tutti

    Mi sto approcciando in questi giorni all' utilizzo di entity framework in un' applicazione windows form.
    E' da un giorno che non riesco ad associare un' origine dati ad una combobox. Mi spiego meglio: in realtā riesco a far visualizzare quello che mi interessa all' interno dell' elenco a discesa ma se cambio un valore non riesco a farlo ritornare al database.

    Nel mio caso specifico ho una tabella Clienti ed un' altra tabella Localitā.

    Con un dataset avrei creato un bindingsource sulla tabella localitā e l' avrei messo come datasource della combobox. Poi come databinding del controllo avrei associato SelectedValue al campo Localitā della tabella Clienti. Nulla di pių semplice.

    Adesso non riesco proprio. Ho provato in diversi modi:

    1) Ho sempre creato un binding source associato ad una nuova origine dati basata sull' oggetto Localitā del datamodel e associato al datasource del combobox. Mi fa vedere l' elenco solo se utilizzo
    codice:
    LocalitāBindingSource.DataSource = Context.Localitā.ToList
    piuttosto che
    codice:
    LocalitāBindingSource.DataSource = Context.Localitā
    2) Ho impostato direttamente Context.Localitā come datasource del combobox; si vede sempre l'elenco ma non riesco a far tornare al db il cambiamento della localitā...


    Grazie mille a chi mi saprā aiutare

  2. #2
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,536
    Ciao,
    come prima cosa per vedere le entity devi caricarle, in questo caso le stai caricando quando fai .ToString(), ecco perchč le vedi... lo puoi fare tranquillamente con Context.Set<Localitā>().Load(), purchč aggiunga ai riferimenti la dll Sytem.Data.Entity (ovviamente aggiungi anche tra i tuoi using), in questo modo eviti di creare la lista solo per caricare i dati. Poi, ti consiglio di utilizzare Context.Localitā.Local come datasource, questa č una ObservableCollection<Localitā>. In questo modo non dovresti avere problemi per cambiamenti nella copia locale, quindi cambiando voce nel combobox dovrebbe cambiare anche nella copia "Local", di conseguenza anche nel context.
    Infine, ricorda che prima di avere cambiamenti in database, ovviamente dovrai necessariamente salvare (Context.SaveChanges()), diversamente i cambiamenti saranno presenti solo nella copia locale.


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.