Połączenie z bazą dwóch aplikacji oraz sens ORM

0

Owszem, oddzielny serwis do stronicowania to zły pomysł, bo pobranie tej informacji, tak jak i pozostałych metadanych potrzebnych do działania stronicowania powinno być wykonane przy okazji pobierania aktualnie potrzebnej strony danych, a nie w jakimś oddzielnym serwisie.

Faktycznie, można to zaliczyć do metadanych, Masz rację.

Nie sądzę. Żadnego kontekstu ORM ani obiektów ADO.NET niepowinno być w klasach formatek i okienek.

Mnie chodziło o klasy rozszeżające funkcjonalność frameworka prezentacji.

0

Witam jeszcze raz :) Przejrzałem wątek i wydaje mi się, że nie było tego pytania. Ale załóżmy mamy taki case. Tworzę aplikację WPF wykorzystując EF i podejście CodeFirst. Powoli piszę funkcjonalność aplikacji, robię migracje itp. I teraz robię deploy aplikacji i daje ją klientowi. Klient uruchamia, wyskakuje okienko, które informuje, że baza danych nie jest skonfigurowana w programie. Klient(powiedzmy, że admin u klienta) podaje dane do serwera bazy danych. I teraz po połączeniu z serwerem, kiedy aplikacja się uruchomi okaże się, że baza danych jest pusta. W tym momencie w programie wyskakuje monit a założenie konta administratora. Po podaniu tych danych aplikacja(a może dokładniej EF wykorzystany w aplikacji) utworzy całą strukturę bazy danych wraz ze zdefiniowanymi wcześniej wartościami w części tabel. Np. w tabeli konfiguracyjnej. Jest to w miarę osiągalna przy korzystaniu z EF?

Dokładniej mnie interesuje jak to wygląda, kiedy już przy starcie zbuildowanej aplikacji baza danych będzie pusta(nie będzie jej w ogólne na serwerze) ? EF sam utworzy strukturę i ewentualnie założy bazę podaną w connection stringu?

EDIT: Ok zrobiłem na szybko aplikację. Faktycznie jest tak, że jak zmienię nazwę bazy w connection stringu to przy pierwszej próbie skorzystania z db contextu utworzy całą strukturę. Ale teraz dwa pytania. Metoda Seed jest uruchamiana przy tworzeniu bazy jak w przypadku jej braku, czy przy każdym uruchomieniu programu?

Drugie pytanie connection string. Chcę mieć możliwość edycji z poziomu programu. Teraz pytanie. Lepiej przekazywać wartość bezpośrednio do metody DbContextu czy może zmieniać wartość w App configu? O ile w ogóle App config można edytować podczas pracy aplikacji... ;)

EDIT2: Ok, podczas, kiedy mam aplikację z EF, zmienię connectionstringa i pierwszy raz próbuję się dostać do bazy, jeśli jej nie ma tworzy ją na nowo. Jednak podczas tego nie wykonuje się metoda Seed(wykonuje się pewnie tylko przy migracjach). Za to wykonuje się metoda OnModelCreating. Da się tam wykonać jakiś skrypt na kontekście, aby wstawić jakieś rekordy?

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