W środowisku wielu użytkowników: Jak upewnić się, że wszyscy klienci widzą zmiany? Jaki jest najlepszy sposób na zrobienie tego?Technika (y) w aplikacji C# multiuser, w której wszyscy klienci mają aktualne dane z centralnej bazy danych
W przeszłości stworzyłem aplikację C# i zainstalowałem ją na 2 komputerach. Połączono go z centralnym serwerem SQL Express (aplikacja kliencka pracowała z Entity Framework Code First jako ORM). Gdy klient1 dodał rekord do bazy danych, nie było to widoczne bezpośrednio dla klienta2. Tylko wtedy, gdy klient2 ponownie pobierze wszystkie dane (twarde odświeżenie), zmiana była widoczna.
Teraz szukam rozwiązania, w jaki sposób można lub należy wykonać tę "synchronizację" (?). Lubię pracować Entity Framework Code Po pierwsze, byłoby miło, że rozwiązanie to może utrzymać. Również aplikacja jest nadal w bardzo wczesnym stadium. Pomyślałem, mając centralną bazę danych i wielu klientów łączących się z nią, ale nie jestem pewien, czy to dobre rozwiązanie. Jeśli twoje sugestie/rozwiązania wymagałyby aplikacji serwera centralnego, do której klienci się łączą (i gdzie aplikacja serwera obsługuje bazę danych), nie stanowiłoby to problemu.
Jeśli to możliwe, podstawowe rozwiązanie przykładowe lub podstawowy kod pokazujący jak zawsze pracować z najnowszymi danymi mógłby być bardzo pomocny!
Podobne pytania:
- Entity Framework - Underlying data (in database) change notification
- Entity Framework data updates in a multi-user environment with central database
- Entity framework data context not in sync with database?
z góry dzięki
dzięki za sugestię. Osobiście nie jest to dobry sposób na pracę. Aplikacja kliencka ładuje wszystkie dane (z powodu siatki i przeszukiwania siatki), więc oznacza to, że localDB ma całą kopię serwera sql (express). tam już widzę ograniczenia (np .: maksymalna strona bazy danych z localDB vs sql server vs sql express). Jakieś inne sugestie? – juFo