Poprawny mechanizm do komunikacji z bazą danych

Poprawny mechanizm do komunikacji z bazą danych
T3
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1
0

Cześć,

ćwiczę sobie komunikacje z bazą i postawiłem sobie taki możliwe prosty ale pewnie dość częsty problem.
Chciałem się was poradzić jaki jest poprawny "schemat", z czego skorzystalibyście mając za zadanie udostępnić komuś w gridzie tabele, np. pracowników z możliwością zaznaczenia poszczególnych rekordów. Zaznaczone rekordy potem wrzucicie do innej tabeli np. działy, gdzie dla konkretnego działu dopiszecie właśnie tych zaznaczonych pracowników.

Jakimi mechanizmami będzie najłatwiej to obsłużyć, entity frameworkiem?

ZD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2310
1

Dowolny który się jakoś integruje np. z gridem
A tak a propos, o jakim gridze mówisz? WinForms, UWP, Aspx ?

Pytasz o wiele, czyli o nic naprawdę. Driver (warstwa), projekt bazy ... i co jeszcze ?

Na marginesie, przeczuwam że masz/chcesz źle zaprojektować bazę danych, należy myśleć o tabeli utrzymującą relację wiele-wiele DziałPracownik, lub bardziej szkolne, ale mało elastyczne pole "dział" w tabeli "Pracownik". Tabela "Działy" akurat tu nie ma nic do rzeczy (jest read-only)

EF się (chyba) wygodnie uzywa, jak kwerendy są z kodu C# jako LINQ. Mi rzucał kłody pod nogi, jak chciałem (części) kwerend zexternalizować.

Osobiście mi się wydaje, że np jak większość kwerend jest zewnętrznych co do języka C# (baza, pliki, kwerendy podane przez usera), zaczyna pokazywać zalety Dapper, czy inne.

CF
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 27
0

@tobyjur3k: ponieważ próbujesz ugryźć wszystko naraz to zakładam, że potrzebujesz bardzo generalnych wskazówek 'jak to się w ogóle robi'?

To co będzie użytkownik robił z danymi nie ma znaczenia dla tego jaką technologię odczytu/zapisu danych zastosujesz. Przynajmniej do kilku requestów na sekunde ;)

Wyobraź sobie podział tego zadania na dwa etapy. Backend (odczyt i zapis do bazy) oraz frontend (strona www/aplikacja desktopowa).

Entity Framework zrealizuje Ci część określoną przeze mnie jako backend. Najwygodniej będzie Ci podejść poprzez 'code first' czyli zaprojektować klasy C#, które będą docelowo prezentować tabelki w bazie danych. Tutaj tylko obsługujesz dodawanie i pobieranie danych. Na tym zadanie entity frameworka się kończy.

Całkowicie osobną sprawą jest to co sobie klika użytkownik. Niezależnie od wybranej technologii prezentacji tutaj będą dwa cele: zapytać użytkownika co chce wyświetlić i ładnie to ubrać oraz przetłumaczyć to co wyklikał użytkownik aby backend mógł to wepchnąć do bazy właśnie za pomocą opisanych wcześniej klas.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.