Najbardziej popularnym ORMem w świecie .NETu jest bez wątpienia Entity Framework. Posiada on wiele wbudowanych mechanizmów ułatwiających pracę z bazą danych, ale odpokutowuje to pewnymi niedogodnościami. Nie należy on do najwydajniejszych ORMów, generuje czasami pokrętne zapytania, oraz łatwo można wpaść w tarapaty, np. przez problem N+1. Istnieją również alternatywy, jak np. nHibernate, czy Dapper! Jak sami twórcy wskazują, a są to ludzie od StackOverflow, Dapper jest królem wśród micro ORMów pod względem prostoty oraz wydajności działania. Jego zadanie polega tylko na przekształcaniu danych z jednego modelu w drugi, czyli na samej istocie działania mechanizmu ORM: mapowaniu. Nie uświadczycie tutaj wielu fajerwerków, zapytania pisze się z palca, wiec czasami trzeba się…
-
-
Operacje CRUD – EF Core
W poprzednim wpisie, dotyczącym EF Core, pokazałem jak utworzyć prostą bazę danych składającą się z jednej tabeli w podejściu Code First. Jednak baza danych do czegoś służy, a nie wegetuje sobie gdzieś. Dzisiaj wykonamy na niej proste operację CRUD, czyli dodamy element (Create), wczytamy go z bazy danych (Read), zmodyfikujemy jego zawartość (Update) oraz usuniemy z bazy danych (Delete). CRUD jest oczywiście akronimem od tych wszystkich operacji. Do tej pory z cyklu poradników o EF ukazały się: Tworzenie bazy danych w podejściu Code First – EF Core Przypomnienie Trochę przypomnienia z poprzedniego wpisu, żebyście nie musieli weryfikować go od nowa. Operujemy na tabeli detektywa, określonego przez klasę: a nasza baza…
-
Tworzenie bazy danych w podejściu Code First – EF Core
Podejście Code First polega na utworzeniu modelu danych za pomocą klas języka C#. Utworzona klasa będzie reprezentowała tabelę bazy danych, a zawarte w niej właściwości (ang. property) będą odzwierciedlały kolumny tabeli. Na podstawie wskazanych klas, które mają być zawarte w bazie danych, EF Core wygeneruje odpowiednie tabele. W tym wpisie pokażę jak utworzyć prostą bazę danych składającą się z jednej tabeli reprezentującą encję detektywów. Na początek wybieram projekt. Będzie to zwyczajna aplikacja konsolowa w Core: Teraz stworzę model danych w postaci klasy POCO (Plain Old CLR Objects). Jest to prosta klasa, odzwierciedlająca dany byt, która później zostanie zamieniona na tabelę bazy danych. Tutaj będzie to tabela detektywów. Zauważcie, że model…