Poprawny mechanizm do komunikacji z bazą danych

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?

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.

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.

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