ASP.NET Core 1.0 z EF7 Code First. DSP16 – część 4

Aplikacje postanowiłem stworzyć w technologii  ASP.NET Core 1.0. Muszę przyznać, że dla mnie to duża nowość. Stworzenie najważniejszych elementów aplikacji przy użyciu tej technologi jest dla mnie nie lada wyzwaniem. W sumie to cały czas prototypuję. Muszę przyznać, że mimo tego, że to jest 4 post w już sporo sam dla siebie się nauczyłem (w sumie 5 post, ale poprzedniego nie opublikowałem).

 

Pierwsza rzecz jaką chciałem stworzyć to oczywiście struktura najważniejszych klas modelowych. Najważniejszymi klasami będą oczywiście: Tournament oraz Player.

DSP16-5.1

Pomyślałem, że zastosuję Entity Framework First Code Approach, który powstał przy okazji wydania EF 4.1. Napisałem sobie klasę, żeby zobaczyć jak w ogóle działa teraz EF.

Następnie: prawy przycisk myszką -> Add New Item… Patrzę, a tutaj nie ma klasycznego DBContext Generator. No to ładnie się zaczyna. Po dłuższym googlowaniu i próbowaniu różnych rzeczy znalazłem coś co mi się spodobało: tutaurelia.net. Czego się nauczyłem? Po pierwsze plik project.json przechowuje w sobie informacje o bibliotekach z których projekt będzie korzystać. Po wpisaniu nowej linijki z informacją z jakiej biblioteki chce się korzystać i zapisaniu pliku, VS sam automatycznie pobiera potrzebną bibliotekę (lub wyrzuca jeżeli się usunęło linijkę z tego pliku). Z tutorialem radziłem sobie bardzo przyzwoicie od 5 (bo od tego miejsca zacząłem) do 10 podpunktu. Tutaj na chwilę miałem problem co mam dodać do pliku project.json, bo miałem w tym pliku też inne śmiecie z innych tutoriali. Ale sumarycznie udało się:

Podpunkt 10 zrobiony, Podpunkt 11 zrobiony – dla osób, które nie wiedzą skąd wziąć connection stringa polecam ten link.

Podpunkt 12. Tutaj mamkilka uwag.

Po pierwsze: gdzie znaleźć command prompt? PCSupport odpowiada. Albo ja podpowiem: Start -> i zacznij pisać ‚command prompt’ (lub zwykłe ‚cmd’).

DSP16-5.2

 

Następnie dumnie wpisałem w command prompt: dnx ef migrations add Initial i wyskoczyła mi informacja:

‚dnx’ is not recognized as an internal or external command, operable program or batch file.

I podpowiedział mi: StackOverFlow.

Ponownie dumnie wpisałem: dnx ef migrations add Initial i wyskoczyła mi inna informacja:

Error: unable to resolve project from <moj sciezka>

StackOverFlow przychodzi z odsieczą. Byłem po prostu w złym folderze. Tutaj kolejna nauka dla mnie: jak jestem w Command Prompt to zawsze mam siedzieć w folderze gdzie jest kod źródłowy!

Po raz kolejny dumnie wpisałem: dnx ef migrations add Initial i wyskoczył mi error z dokładną lokalizacją gdzie się EF posypał się w kodzie. Coś się w końcu zaczyna się lepszego wyświetlać. Ale tym razem nie wiem w ogóle co googlować. Ale jak wiadomo tonący brzytwy się chwyta znalazłem coś ciekawego na Stacku

Run dnu restore at first. Then check if dnx ef gives any output. If it does display a EF7 unicorn then add migration with dnx ef migrations add initial.

Po prawdzie jedne głos, że odpowiedź pomogła, ale spróbowałem. I zobaczyłem tego jednorożca!DSP16-5.3

Niezłomnie wpisałem: dnx ef migrations add Initial i wyskoczyła mi informacja: Done. Później wpisałem: dnx ef database update i wskoczyła mi informacja: Applaying migration „<dataigodzina>_initial”. Done.

W SQL MS elegancko zobaczyłem moją klasę odzwierciedloną w bardzie danych.

DSP16-5.4

Przy okazji tych problemów nauczyłem się jeszcze jednej rzeczy: podczas googlowania problemów będę używać takich słów kluczowych jak asp.net 5, dnx, asp.net core.

 

PS. Tak, tak. WebApplication5.Model.Players to jeden z moim projektów prototypów na których sprawdzałem, czy EF działa :).

Powered by: Wordpress