Data binding z Entity Framework

Odpowiedz Nowy wątek
Wielki Orzeł
2015-01-11 22:44
Wielki Orzeł
0

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

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?

Pozostało 580 znaków

2015-01-12 07:44

Rejestracja: 5 lat temu

Ostatnio: 4 lata temu

0

model = new ModelContext();

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


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, 2015-01-12 07:48

Pozostało 580 znaków

2015-01-12 09:56

Rejestracja: 5 lat temu

Ostatnio: 4 lata temu

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).

Bo nie powinieneś tego wszystkiego zaciągać. - dam1an 2015-01-12 10:24
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. - xfeng 2015-01-12 10:49
Dzielisz to na strony, wyświetlasz kilkadziesiąt rekordów i pobierasz z bazy tylko aktualnie wyświetloną stronę. - dam1an 2015-01-12 11:06
Myślałem, że jest jakieś lepsze rozwiązanie :) - xfeng 2015-01-12 12:05
To jest lepsze od pobierania całej bazy do programu. - dam1an 2015-01-12 12:15

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0