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 platformy Entity Framework Projektant, 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 Projektant Entity Framework. Klasy, z którymi korzystasz w aplikacji, są generowane automatycznie z 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 platformy Entity Framework Projektant, 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 Projektant Entity Framework. Klasy, z którymi korzystasz w aplikacji, są generowane automatycznie z pliku EDMX.

Prezenter: Rowan Miller

Wideo: NULL | 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ż zainstalować 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ź wartość ModelFirstSample jako nazwę
  • Wybierz OK

2. Tworzenie modelu

Użyjemy platformy Entity Framework Projektant, która jest uwzględniona 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ź ciąg BloggingModel jako nazwę i kliknij przycisk OK. Spowoduje to uruchomienie Kreatora modelu danych jednostki

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

    Create Empty Model

Projektant Entity Framework jest otwierany 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 polecenie Właściwości

  • W okno Właściwości 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 nowy —> jednostka...

  • Wprowadź ciąg 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ą, wprowadź nazwę jako nazwę właściwości.

  • 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 okno Właściwości zmień ustawienie dopuszczające wartość Null na True. Umożliwia to zapisanie bloga w bazie danych bez przypisywania jej 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...

  • Aby jeden koniec relacji wskazywał blog z wieloliczbową liczbą jednego i drugiego punktu końcowego na Post z wieloliczbową wartością Wieleoznacza 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 i kliknij przycisk OK

    Add Association MF

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

Model Initial

Dodatkowe kroki w programie Visual Studio 2010

Jeśli pracujesz w programie Visual Studio 2010, musisz wykonać kilka dodatkowych kroków, aby przeprowadzić uaktualnienie do najnowszej wersji programu Entity Framework. Uaktualnianie jest ważne, ponieważ zapewnia dostęp do ulepszonej powierzchni interfejsu API, która jest znacznie łatwiejsza 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ądzanie pakietami NuGet...Jeśli nie masz opcji Zarządzaj pakietami NuGet... należy zainstalować 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 platformy Entity Framework.

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

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

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

    DbContext Template

3. Generowanie bazy danych

Biorąc pod uwagę nasz model, program 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ę Nowy Połączenie ion... i określ wartość LocalDB lub SQL Express, w zależności od używanej wersji programu Visual Studio, wprowadź ciąg ModelFirst.Blogging jako nazwę bazy danych.

    LocalDB Connection 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 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 lokalnej bazy danych lub programu SQL Server Express w zależności od używanej wersji programu Visual Studio

4. Odczytywanie i zapisywanie danych

Teraz, gdy mamy model, nadszedł czas, aby używać 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, pliki BloggingModel.tt i BloggingModel.Context.tt będą bezpośrednio pod projektem, a nie zagnieżdżone w pliku EDMX.

Generated Classes

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 Użytkownik 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ść Nazwa użytkownika na powierzchni projektowej i wybierz pozycję Właściwości w okno Właściwości zmień ustawienie MaxLength na 50. Spowoduje to ograniczenie danych, które mogą być przechowywane w nazwie użytkownika na 50znakó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 programowania lokalnego, 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 lokalnej bazy danych lub programu 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 programie EF Projektant, 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.