Najpierw model

Ten film wideo i przewodnik krok po kroku zawierają wprowadzenie do opracowywania modelu First przy użyciu platformy Entity Framework. Model First umożliwia utworzenie nowego modelu przy użyciu projektanta platformy Entity Framework, 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 projektancie programu Entity Framework. Klasy, z którymi korzystasz w aplikacji, są generowane automatycznie na podstawie pliku EDMX.

Obejrzyj film

Ten film wideo i przewodnik krok po kroku zawierają wprowadzenie do opracowywania modelu First przy użyciu platformy Entity Framework. Model First umożliwia utworzenie nowego modelu przy użyciu projektanta platformy Entity Framework, 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 projektancie programu Entity Framework. Klasy, z którymi korzystasz w aplikacji, są generowane automatycznie na podstawie pliku EDMX.

Prezentowane przez: Rowan Miller

Wideo: KINGSTON | MP4 | ZIP (ZIP)

Wymagania wstępne

Aby ukończyć ten przewodnik, musisz mieć zainstalowany program Visual Studio 2010 lub Visual Studio 2012.

Jeśli używasz programu Visual Studio 2010, musisz również mieć zainstalowany pakiet NuGet .

1. Tworzenie aplikacji

Aby zachować prostotę, utworzymy podstawową aplikację konsolową, która używa modelu First do uzyskiwania dostępu do danych:

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

2. Tworzenie modelu

Użyjemy projektanta platformy Entity Framework, który zostanie uwzględniony w programie Visual Studio, aby utworzyć nasz model.

  • Projekt —> dodaj nowy element...

  • Wybierz pozycję Dane z menu po lewej stronie, a następnie ADO.NET model danych jednostki

  • Wprowadź nazwę BloggingModel i kliknij przycisk OK. Spowoduje to uruchomienie Kreatora modelu danych jednostki

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

    Tworzenie pustego modelu

Projektant platformy Entity Framework jest 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 okno Vlastnosti zmień nazwę kontenera jednostki na BloggingContextJest to nazwa kontekstu pochodnego, który zostanie wygenerowany dla Ciebie, kontekst reprezentuje sesję z bazą danych, umożliwiając nam wykonywanie zapytań i zapisywanie danych

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

  • Wprowadź ciąg Blog jako nazwę jednostki i Identyfikator bloga jako nazwę klucza, a następnie kliknij przycisk OK

    Dodawanie jednostki bloga

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

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

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

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

  • Dodawanie właściwości skalarnych tytułu i zawartości do jednostki Post

Teraz, gdy mamy kilka jednostek, nadszedł czas, aby dodać między nimi skojarzenie (lub relację).

  • Kliknij prawym przyciskiem myszy powierzchnię projektową i wybierz polecenie Dodaj nowy —> skojarzenie...

  • Ustaw jeden koniec relacji na Blog z wielością jednego i drugiego punktu końcowego do postu z wielością wieluOznacza to, że blog ma wiele wpisów, a wpis należy do jednego bloga

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

    Dodawanie skojarzenia MF

Mamy teraz prosty model, na podstawie którego możemy wygenerować bazę danych i używać jej do odczytywania i zapisywania danych.

Początkowy model

Dodatkowe kroki w programie Visual Studio 2010

Jeśli pracujesz w programie Visual Studio 2010, wykonaj kilka dodatkowych kroków, aby uaktualnić program Entity Framework do najnowszej wersji. Uaktualnienie jest ważne, ponieważ zapewnia dostęp do ulepszonej powierzchni interfejsu API, co jest znacznie łatwiejsze w użyciu, a także najnowsze poprawki błędów.

Najpierw musimy pobrać najnowszą wersję programu Entity Framework z narzędzia NuGet.

  • Projekt —> Zarządzaj pakietami NuGet...Jeśli nie masz opcji Zarządzaj pakietami NuGet... zainstaluj najnowszą wersję pakietu NuGet
  • Wybierz kartę Online
  • Wybierz pakiet EntityFramework
  • Kliknij pozycję Zainstaluj

Następnie musimy zamienić nasz model, aby wygenerować kod korzystający z interfejsu API DbContext, który został wprowadzony w nowszych wersjach programu 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 ciąg DbContext

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

    Szablon DbContext

3. Generowanie bazy danych

Biorąc pod uwagę nasz model, platforma Entity Framework może obliczyć schemat bazy danych, który pozwoli nam przechowywać i pobierać dane przy użyciu modelu.

Serwer bazy danych zainstalowany w programie Visual Studio różni się w zależności od zainstalowanej wersji programu Visual Studio:

  • Jeśli używasz programu Visual Studio 2010, utworzysz bazę danych SQL Express.
  • Jeśli używasz programu Visual Studio 2012, utworzysz 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 używanej wersji programu Visual Studio, wprowadź wartość ModelFirst.Blogging jako nazwę bazy danych.

    Połączenie lokalnej bazy danych MF

    Sql Express Connection MF

  • Wybierz przycisk OK i zostanie wyświetlony monit o utworzenie nowej bazy danych, wybierz pozycję Tak

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

  • Po wyświetleniu skryptu kliknij przycisk Zakończ , a 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 do nawiązania połączenia, określenie bazy danych LocalDB lub SQL Server Express w zależności od używanej wersji programu Visual Studio

4. Odczytywanie & danych zapisu

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

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

Wygenerowane klasy

Zaimplementuj metodę Main w pliku Program.cs, jak pokazano poniżej. Ten kod tworzy nowe wystąpienie 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 nadszedł czas, aby wprowadzić pewne zmiany w naszym modelu, gdy wprowadzimy te zmiany, musimy również zaktualizować schemat bazy danych.

Zaczniemy od dodania nowej jednostki Użytkownik do modelu.

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

    Dodawanie jednostki użytkownika

  • Kliknij prawym przyciskiem myszy właściwość Username na powierzchni projektowej i wybierz pozycję Właściwości, w okno Vlastnosti zmień ustawienie MaxLength na 50. Spowoduje to ograniczenie danych, które mogą być przechowywane w nazwie użytkownika na 50 znaków

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

Mamy teraz zaktualizowany model i jesteśmy gotowi zaktualizować bazę danych, aby uwzględnić nasz nowy typ jednostki Użytkownik.

  • Kliknij prawym przyciskiem myszy powierzchnię projektową i wybierz polecenie Generuj bazę danych na podstawie modelu..., program Entity Framework obliczy skrypt, aby odtworzyć schemat na podstawie zaktualizowanego modelu.
  • Kliknij przycisk Zakończ
  • Mogą pojawić się ostrzeżenia dotyczące zastępowania istniejącego skryptu DDL oraz mapowania i części magazynu modelu. Kliknij przycisk Tak dla obu tych ostrzeżeń
  • Zaktualizowany skrypt SQL do utworzenia bazy danych jest otwierany.
    Wygenerowany skrypt spowoduje usunięcie wszystkich istniejących tabel, a następnie ponowne utworzenie schematu od podstaw. Może to działać w przypadku lokalnego programowania, ale nie jest 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 do nawiązania połączenia, określenie bazy danych LocalDB lub SQL Server Express w zależności od używanej wersji programu Visual Studio

Podsumowanie

W tym przewodniku przyjrzeliśmy się programowi Model First, który pozwolił nam utworzyć model w projektancie EF Designer, a następnie wygenerować bazę danych na podstawie tego modelu. Następnie użyliśmy modelu do odczytywania i zapisywania danych z bazy danych. Na koniec zaktualizowaliśmy model, a następnie ponownie utworzyliśmy schemat bazy danych, aby był zgodny z modelem.