Data binding z Entity Framework

Data binding z Entity Framework
0

Udało mi się połączyć dataGridView z danymi z EF6:

Kopiuj
model = new ModelContext();
model.Users.Select(x => x).Load();
bindingSource1.DataSource = model.Users.Local.ToBindingList();
dataGridView1.DataSource = bindingSource1;

Dane się ładują tak jak należy, ale kiedy zmienię jakąś wartość w dataGridView, zmiany nie są przenoszone do bazy danych :( o czymś zapomniałem?

P9
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 9 lat
0

model = new ModelContext();

to jest twój context
czyli dla mnie bardziej sensownie wygląda to w ten sposób

Kopiuj
 
private ModelContext context =new ModelContext();

// pobranie danych 
var entity = context.Users.ToList();

// zapis danych (edycja)

void Save(Users user) 
{
 context.Entry<Users>(user).State = System.Data.EntityState.Modified;
 context.SaveChanges();
}
 
edytowany 2x, ostatnio: piotr91
XF
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 9 lat
  • Postów:39
0

Może to Ci pomoże:
http://msdn.microsoft.com/pl-pl/data/jj574514.aspx

Ja niedawno próbowałem swój projekt robić na EF, ale szybko zrezygnowałem,
bo ta metoda Load, z której według MS powinno się korzystać, bardzo powoli działała (tabela z 50 tys. rekordów).

dam1an
Bo nie powinieneś tego wszystkiego zaciągać.
XF
Możliwe, ale w takim razie jak podpiąć dane do jakiegoś DataSource? Jak robiłem tak jak w tym odnośniku, najpierw Load, później Local.
dam1an
Dzielisz to na strony, wyświetlasz kilkadziesiąt rekordów i pobierasz z bazy tylko aktualnie wyświetloną stronę.
XF
Myślałem, że jest jakieś lepsze rozwiązanie :)
dam1an
To jest lepsze od pobierania całej bazy do programu.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.