- Added - encja jest śledzona przez kontekst, ale nie istnieje w bazie danych
- Unchanged - encja jest śledzona przez kontekst oraz istnieje w bazie danych. Wartości pól są takie same w bazie jak i obiekcie (nie dokonano żadnych zmian).
- Modified - encja jest śledzona przez kontekst, istnieje w bazie danych. Dokonano zmian w jej polach
- Deleted - encja jest śledzona przez kontekst i istnieje w bazie danych. Została jednak oznaczona do usunięcia. Przy następnym wywołaniu SaveChanges zostanie usunięta z bazy danych
- Detached - encja nie jest śledzona przez kontekst
Standardowe operacje w przypadku Encji w odniesieniu do jej stanu:
Dodawanie encji do kontekstu:
Dodawać można na jeden z trzech sposobów:
za pomocą metody Add
Code:
zmieniając stan encji na Added:
Code:
trzecia możliwość to dodanie do kolekcji pobranych elementów, np. klient może mieć wiele zamówień, chcemy dodać kolejne - możemy postąpić następująco:
Code:
W każdym przypadku, jeżeli dodawana encja posiada referencje do innych encji, zostaną one także dodane do bazy danych podczas wywoływania SaveChanges - chyba że już są zapisane te dane w bazie danych.
Dołączanie encji do kontekstu
Jeżeli mamy encję, która istnieje w bazie danych, ale z jakichś powodów została odłączona od kontekstu (np. została wysłana przez klienta w n-warstwowej aplikacji), wtedy taką encję możemy dołączyć do kontekstu za pomocą metody Attach:
Code:
Encja zostanie dodana ze stanem Unchanged, a wywołanie metody SaveChanges w tym przypadku nie będzie mieć żadnych konsekwencji na bazie danych.
Innym sposobem dodania istniejącej encji w bazie do kontekstu jest zmiana jej stanu na Unchanged:
Code:
Brak komentarzy:
Prześlij komentarz