Apple, Visual Studio, NET.Core, Entity Framework, SQLite w jednym stali…

Apple, Visual Studio, NET.Core, Entity Framework, SQLite w jednym stali…

Przeczytałem wczoraj na Tweeterze, że pojawiło się poprawnie działające Visual Studio dla Mac OS X. Instalacja przebiegła bezproblemowo. Bawię się więc. Przygotujemy bazę SQLite na Macu za pomocą Visual Sudio, NET.Core i EntityFramework.

Zaczynamy

Na pierwszy ogień poszło połączenie NET.Core, EntityFramework i SQLite. Coś prostego, ale pozwalającego połączyć ogień z wodą. Po kolei wygląda to tak.

Tworzymy jakąś prostą solucję w Visual Studio

i dodajemy potrzebne pakiety.

Czekamy chwilę po zaakceptowaniu licencji i zaczynamy tworzyć klasy

W końcu piszemy kod. Jakaś banalna encja.

Baza…

Mamy prosty model. Trzeba teraz jakoś stworzyć bazę i się z nią połączyć. Pierwszym krokiem jest kontekst. Tworzymy nową klasę i wypełniamy ją kodem.

Edycja pliku Startup.cs sprawi, że nasza baza zostanie założona. Dopisujemy trochę kodu i nasza metoda Startup powinna wyglądać podobnie do poniższej.

Jeszcze jedna linijka kodu w metodzie ConfigureServices. Dodajemy usługę services.AddEntityFrameworkSqlite().AddDbContext(); i nasza metoda przybiera poniższy kształt.

… i tabele

W tym momencie, po uruchomieniu powinniśmy mieć na dysku utworzoną bazę. Będzie ona jednak pusta. No, prawie pusta. Nie będzie w niej nic związanego z naszym modelem. Musimy dodać naszą encję do kontekstu. Wracamy do naszej klasy definiującej kontekst i dodajemy property dla każdej klasy (modelu), dla której chcemy mieć utworzoną tabelę w bazie danych. W naszym przypadku mamy tylko jeden model, dodajemy więc tylko jedną linijkę kodu public DbSet FirstEntities { get; set; }.
Pozostała jedna rzecz. Uruchomienie w tym momencie rzuci w nas wyjątkiem o treści „The entity type ‚FirstEntity’ requires a primary key to be defined.” Musimy więc ten klucz zddefiniować.
Klucze definiujemy także w naszym kontekście, przeciążając metodę OnModelCreating. W naszym przypadku przyjmie ona następującą postać.

Ruszamy

Nie bawimy się w migracje, usuwamy więc wcześniej utworzony plik z naszą bazą. Uruchamiamy nasz projekt i po chwili na naszym dysku powinien ponownie pojawić się plik z naszą bazą, a w nim tabela opisująca nasz model FirstEntity.

 

Gdyby ktoś chciał pobrać sobie źródła, to zapraszam na GitHub.

I to by było na tyle. Gdzie ten świat zmierza? 😉 Podoba mi się ten kierunek.

2 thoughts on “Apple, Visual Studio, NET.Core, Entity Framework, SQLite w jednym stali…

  1. Kierunek jest świetny… Po tym jak się przesiadłem na ASP. NET Core to już nie widzę drogi powrotnej. Wyhostowana aplikacja na Debianie naprawdę działa. W ciekawych czasach przyszło żyć… 🙂

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *