Ho un'applicazione di prova Winforms che sto usando per provare a conoscere Entity Framework Core.
Ho un datagridview associato alla mia tabella e posso modificare i campi e chiamare context.SaveChanges()
- funziona bene.
Cosa succede se ho modificato diverse celle su righe diverse, cancellato e aggiunto una riga, quindi ho cambiato idea e non voglio salvare? Come posso eliminare le modifiche e aggiornare il datagridview con i dati originali?
Chiama EntityFrameworkQueryableExtensions.Load(context.entity)
e quindi dataGridView1.Refresh()
ma il mio modulo rimane invariato con le mie modifiche.
dataGridView1.DataSource = context.enity.Local.ToBindingList();
Per caricare i dati dal database devi istanziare nuovamente il contesto:
context = new SampleDbContext(options);
allora puoi ricaricare la tua griglia in qualsiasi modo possibile. Penso che il modo più semplice possibile sia assegnarlo di nuovo:
dataGridView.DataSource = context.MyDbSet;
E ancora una cosa (nel caso tu voglia saperne di più); EF non è progettato per essere utilizzato con contesti di lunga durata. Il modo migliore per utilizzare EF è quello di disporre l'istanza di DbContext dopo aver terminato con esso:
using(var ctx = new SampleDbContext()){
instances = ctx.MyDbSet....
}