Artykuły dla tagu Windows Phone

kwi 07 2012
0

LINQ i DataContext - wycofywanie zmian w bazie

Ostatnimi czasy rozpocząłem naukę programowania pod Windows Phone 7. Szybko okazało się, że przy pisaniu jednej z testowych aplikacji, warunkiem koniecznym jej dalszego rozwoju stał się dostęp do bazy danych. Programowanie na platformę mobilną wiążę się jednak z wieloma ograniczeniami w stosunku do programowania aplikacji desktopowych i oczywiście nie ominęły one również samej bazy danych.

W przypadku Windows Phone, możemy korzystać zatem tylko z SQL Server CE i wykorzystywać w tym celu wyłącznie LINQ to SQL współpracujące z DataContext. Cały ten mechanizm jest jednak dużo bardziej ograniczony, aniżeli możliwości do których przyzwyczaiły nas klasyczne zapytania wyrażone językiem T-SQL.

Dla mnie osobiście, największą bolączką jest brak mechanizmu, który w prosty sposób pozwala na wycofywanie wprowadzonych zmian. Dlaczego o tym wspominam? Ano dlatego, że transakcje wykonywane na kontekście danych, zapisywane są do bazy danych dopiero w momencie wykonania metody SubmitChanges. Jest to podejście stricte transakcyjne i w gruncie rzeczy sprawdzą się nawet dobrze w tym systemie. Niestety mimo, że istnieje metoda która symuluje commit, brakuje tutaj metody typu rollback. Prowadzi to do tego, że nawet jeśli nie zatwierdzimy zmian od razu, to zostaną one zapisane przy dowolnym późniejszym commicie (chyba że wyłączymy aplikację, ale chyba nie o to chodzi). Jest to odrobinę dziwne, ale na szczęście istnieje pewne obejście tego problemu, którym zaraz się Wami podzielę.

1 2 3 4 5 6