Model First

Ten film wideo i przewodnik krok po kroku zawierają wprowadzenie do tworzenia aplikacji Model First użyciu Entity Framework. Model First umożliwia utworzenie nowego modelu przy użyciu Entity Framework Designer, a następnie wygenerowanie schematu bazy danych na podstawie modelu. Model jest przechowywany w pliku EDMX (rozszerzenie edmx) i można go wyświetlać i edytować w Entity Framework Designer. Klasy, z których wchodzisz w interakcję w aplikacji, są automatycznie generowane na podstawie pliku EDMX.

Obejrzyj film

Ten film wideo i przewodnik krok po kroku zawierają wprowadzenie do tworzenia aplikacji Model First użyciu Entity Framework. Model First umożliwia utworzenie nowego modelu przy użyciu Entity Framework Designer, a następnie wygenerowanie schematu bazy danych na podstawie modelu. Model jest przechowywany w pliku EDMX (rozszerzenie edmx) i można go wyświetlać i edytować w Entity Framework Designer. Klasy, z których wchodzisz w interakcję w aplikacji, są automatycznie generowane na podstawie pliku EDMX.

Presented By: Rowan Miller

Wideo:WMVMP4WMV (ZIP)

Wymagania wstępne

Do ukończenia tego przewodnika Visual Studio 2010 lub Visual Studio 2012.

Jeśli używasz programu Visual Studio 2010, konieczne będzie również NuGet instalacji.

1. Tworzenie aplikacji

Aby zachować prostotę, zamierzamy skompilować podstawową aplikację konsolowa, która używa Model First do uzyskiwania dostępu do danych:

  • Otwórz program Visual Studio.
  • Plik — nowy > — Project...
  • Wybierz Windows z menu po lewej stronie i pozycję Aplikacja konsolowa
  • Wprowadź modelFirstSample jako nazwę
  • Wybierz przycisk OK.

2. Tworzenie modelu

W celu utworzenia modelu użyjemy Entity Framework Designer, który jest częścią Visual Studio.

  • Project — Dodaj nowy element...

  • Wybierz pozycję Dane z menu po lewej stronie, a następnie wybierz ADO.NET Entity Data Model

  • Wprowadź Nazwę AplikacjiModel i kliknij przycisk OK,co uruchomi kreatora Entity Data Model aplikacji

  • Wybierz pozycję Pusty model i kliknij przycisk Zakończ

    Create Empty Model

Szablon Entity Framework Designer otwarty z pustym modelem. Teraz możemy rozpocząć dodawanie jednostek, właściwości i skojarzeń do modelu.

  • Kliknij prawym przyciskiem myszy powierzchnię projektową i wybierz pozycję Właściwości

  • W aplikacji okno Właściwości nazwę kontenera jednostki na Wartość Wtym kontekście jest to nazwa kontekstu pochodnego, który zostanie wygenerowany, a kontekst reprezentuje sesję z baządanych, umożliwiając nam wykonywanie zapytań i zapisywanie danych

  • Kliknij prawym przyciskiem myszy powierzchnię projektową i wybierz pozycję Dodaj nową — jednostka...

  • Wprowadź blog jako nazwę jednostki i identyfikator bloga jako nazwę klucza, a następnie kliknij przycisk OK

    Add Blog Entity

  • Kliknij prawym przyciskiem myszy nową jednostkę na powierzchni projektowej i wybierz pozycję Dodaj nową — właściwość skalarną,a następnie wprowadź nazwę właściwości Name.

  • Powtórz ten proces, aby dodać właściwość Adresu URL.

  • Kliknij prawym przyciskiem myszy właściwość Url na powierzchni projektowej i wybierz pozycję Właściwości w oknie okno Właściwości zmień ustawienie dopuszczające wartość null na wartość True.Dzięki temu możemy zapisać blog w bazie danych bez przypisywania mu adresuURL

  • Korzystając z właśnie poznanych technik, dodaj jednostkę Post z właściwością klucza PostId

  • Dodawanie właściwości skalarnych Tytuł i Zawartość do jednostki Post

Teraz, gdy mamy kilka jednostek, nas czas na dodanie skojarzenia (lub relacji) między nimi.

  • Kliknij prawym przyciskiem myszy powierzchnię projektową i wybierz pozycję Dodaj nowy — Skojarzenie...

  • Jeden koniec punktu relacji należy do bloga z mnożeniem jednego punktu końcowego, a drugi punkt końcowy na Post z liczebnością Wiele Oznacza to, że blog ma wiele wpisów, a wpis należy do jednegobloga

  • Upewnij się, że pole Dodaj właściwości klucza obcego do jednostki "Post" jest zaznaczone, a następnie kliknij przycisk OK

    Add Association MF

Mamy teraz prosty model, na podstawie których możemy wygenerować bazę danych i użyć jej do odczytywania i zapisu danych.

Model Initial

Dodatkowe kroki w Visual Studio 2010 r.

Jeśli pracujesz w programie Visual Studio 2010, musisz wykonać kilka dodatkowych kroków, aby uaktualnić program do najnowszej wersji Entity Framework. Uaktualnienie jest ważne, ponieważ zapewnia dostęp do ulepszonej powierzchni interfejsu API, która jest znacznie łatwiejsza w użyciu, a także do najnowszych poprawek błędów.

Najpierw musimy pobrać najnowszą wersję pakietu Entity Framework z NuGet.

  • Project — zarządzanie NuGet pakietów... Jeśli nie masz opcji Zarządzaj pakietami NuGet, zainstaluj najnowszą wersję NuGet
  • Wybieranie karty Online
  • Wybieranie pakietu EntityFramework
  • Kliknij pozycję Zainstaluj.

Następnie musimy zamienić nasz model, aby wygenerować kod, który korzysta z interfejsu API DbContext, który został wprowadzony w nowszych wersjach Entity Framework.

  • Kliknij prawym przyciskiem myszy puste miejsce modelu w projektancie EF i wybierz pozycję Dodaj element generowania kodu...

  • Wybierz pozycję Szablony online z menu po lewej stronie i wyszukaj pozycję DbContext

  • Wybierz generator EF 5.x DbContext generator dla języka C#,wprowadź nazwęModelModel i kliknij przycisk Dodaj

    DbContext Template

3. Generowanie bazy danych

Biorąc pod uwagę nasz model, Entity Framework obliczyć schemat bazy danych, który umożliwi nam przechowywanie i pobieranie danych przy użyciu modelu.

Serwer bazy danych instalowany z Visual Studio różni się w zależności od Visual Studio serwera:

  • Jeśli używasz programu Visual Studio 2010, tworzysz bazę danych SQL Express.
  • Jeśli używasz programu Visual Studio 2012, tworzysz bazę danych LocalDB.

Wygenerujmy bazę danych.

  • Kliknij prawym przyciskiem myszy powierzchnię projektową i wybierz pozycję Generuj bazę danych na podstawie modelu...

  • Kliknij pozycję Nowe połączenie... i określ wartość LocalDB lub SQL Express, w zależności od wersji Visual Studio, wprowadź ModelFirst.Chcesz jako nazwę bazy danych.

    LocalDB Connection MF

    Sql Express Connection MF

  • Wybierz przycisk OK. Zostanie pytanie, czy chcesz utworzyć nową bazę danych. Wybierz pozycję Tak

  • Wybierz pozycję Dalej, Entity Framework Designer obliczy skrypt w celu utworzenia schematu bazy danych

  • Gdy skrypt zostanie wyświetlony, kliknij przycisk Zakończ. Skrypt zostanie dodany do projektu i otwarty

  • Kliknij prawym przyciskiem myszy skrypt i wybierz polecenie Wykonaj. Zostanie wyświetlony monit o określenie bazy danych, z którą chcesz nawiązać połączenie, określenie wartości LocalDB lub SQL Server Express w zależności od wersji Visual Studio, z której korzystasz

4. Odczytywanie & danych

Teraz, gdy mamy już model, na razie należy go użyć do uzyskania dostępu do niektórych danych. Klasy, których będziemy używać do uzyskiwania dostępu do danych, są automatycznie generowane na podstawie pliku EDMX.

Ten zrzut ekranu pochodzi z programu Visual Studio 2012, jeśli używasz programu Visual Studio 2010, pliki BloggingModel.tt i BloggingModel.Context.tt będą bezpośrednio pod projektem, a nie zagnieżdżone w pliku EDMX.

Generated Classes

Zaim implementuj metodę Main w programie Program.cs, jak pokazano poniżej. Ten kod tworzy nowe wystąpienie naszego kontekstu, a następnie używa go do wstawienia nowego bloga. Następnie używa zapytania LINQ, aby pobrać wszystkie blogi z bazy danych uporządkowane alfabetycznie według tytułu.

class Program
{
    static void Main(string[] args)
    {
        using (var db = new BloggingContext())
        {
            // Create and save a new Blog
            Console.Write("Enter a name for a new Blog: ");
            var name = Console.ReadLine();

            var blog = new Blog { Name = name };
            db.Blogs.Add(blog);
            db.SaveChanges();

            // Display all Blogs from the database
            var query = from b in db.Blogs
                        orderby b.Name
                        select b;

            Console.WriteLine("All blogs in the database:");
            foreach (var item in query)
            {
                Console.WriteLine(item.Name);
            }

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }
    }
}

Teraz możesz uruchomić aplikację i przetestować ją.

Enter a name for a new Blog: ADO.NET Blog
All blogs in the database:
ADO.NET Blog
Press any key to exit...

5. Radzenie sobie ze zmianami modelu

Teraz na czas wprowadzić pewne zmiany w naszym modelu, gdy wprowadzamy te zmiany, musimy również zaktualizować schemat bazy danych.

Zaczniemy od dodania nowej jednostki Użytkownik do naszego modelu.

  • Dodaj nową nazwę jednostki User z nazwą użytkownika jako nazwą klucza i ciągiem jako typem właściwości klucza

    Add User Entity

  • Kliknij prawym przyciskiem myszy właściwość Username na powierzchni projektowej i wybierz pozycję Właściwości . W menu okno Właściwości zmień ustawienie MaxLength na wartość 50.To ogranicza dane, które mogą być przechowywane w nazwie użytkownika, do50 znaków

  • Dodawanie właściwości skalarnych DisplayName do jednostki User

Mamy teraz zaktualizowany model i jesteśmy gotowi do zaktualizowania bazy danych w celu uwzględnienia nowego typu jednostki Użytkownik.

  • Kliknij prawym przyciskiem myszy powierzchnię projektową i wybierz pozycję Generuj bazę danych na podstawie modelu...,Entity Framework obliczy skrypt w celu ponownego odtworzenia schematu na podstawie zaktualizowanego modelu.
  • Kliknij przycisk Zakończ.
  • Mogą pojawić się ostrzeżenia dotyczące nadpisania istniejącego skryptu DDL oraz części mapowania i magazynu modelu. Kliknij przycisk Tak dla obu tych ostrzeżeń
  • Zaktualizowany skrypt SQL tworzenia bazy danych jest otwierany automatycznie
    Wygenerowany skrypt spowoduje upuszczenie wszystkich istniejących tabel, a następnie ponowne utworzenie schematu od podstaw. Może to działać w przypadku tworzenia lokalnego, ale nie jest to możliwe do wypychania zmian do bazy danych, która została już wdrożona. Jeśli musisz opublikować zmiany w bazie danych, która została już wdrożona, musisz edytować skrypt lub użyć narzędzia do porównywania schematów w celu obliczenia skryptu migracji.
  • Kliknij prawym przyciskiem myszy skrypt i wybierz polecenie Wykonaj. Zostanie wyświetlony monit o określenie bazy danych, z którą chcesz nawiązać połączenie, określenie wartości LocalDB lub SQL Server Express w zależności od wersji Visual Studio, z której korzystasz

Podsumowanie

W tym przewodniku przyjrzeliśmy się Model First, co umożliwiło nam utworzenie modelu w projektancie EF, a następnie wygenerowanie bazy danych na podstawie tego modelu. Następnie umyliśmy model do odczytu i zapisu niektórych danych z bazy danych. Na koniec zaktualizowaliśmy model, a następnie ponownie odtworzyliśmy schemat bazy danych w celu dopasowania do modelu.