Najpierw baza danych

Ten film wideo i przewodnik krok po kroku zawierają wprowadzenie do programowania w usłudze Database First przy użyciu platformy Entity Framework. Funkcja Database First umożliwia odtworzenie modelu z istniejącej bazy danych. 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 zawiera wprowadzenie do programowania w usłudze Database First przy użyciu platformy Entity Framework. Funkcja Database First umożliwia odtworzenie modelu z istniejącej bazy danych. 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 co najmniej program Visual Studio 2010 lub Visual Studio 2012.

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

 

1. Tworzenie istniejącej bazy danych

Zazwyczaj w przypadku określania wartości docelowej istniejącej bazy danych zostanie ona już utworzona, ale w tym przewodniku musimy utworzyć bazę danych, aby uzyskać dostęp.

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.

  • Otwórz program Visual Studio.

  • Widok —> Eksplorator serwera

  • Kliknij prawym przyciskiem myszy pozycję Połączenie ions danych —> Dodaj Połączenie ion...

  • Jeśli nie nawiązaliśmy połączenia z bazą danych z Eksploratora serwera przed wybraniem programu Microsoft SQL Server jako źródła danych

    Select Data Source

  • Połączenie do lokalnej bazy danych lub programu SQL Express, w zależności od zainstalowanej bazy danych i wprowadź DatabaseFirst.Blogging jako nazwa bazy danych

    Sql Express Connection DF

    LocalDB Connection DF

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

    Create Database Dialog

  • Nowa baza danych pojawi się teraz w Eksploratorze serwera, kliknij ją prawym przyciskiem myszy i wybierz pozycję Nowe zapytanie

  • Skopiuj następujący kod SQL do nowego zapytania, a następnie kliknij prawym przyciskiem myszy zapytanie i wybierz polecenie Wykonaj

CREATE TABLE [dbo].[Blogs] (
    [BlogId] INT IDENTITY (1, 1) NOT NULL,
    [Name] NVARCHAR (200) NULL,
    [Url]  NVARCHAR (200) NULL,
    CONSTRAINT [PK_dbo.Blogs] PRIMARY KEY CLUSTERED ([BlogId] ASC)
);

CREATE TABLE [dbo].[Posts] (
    [PostId] INT IDENTITY (1, 1) NOT NULL,
    [Title] NVARCHAR (200) NULL,
    [Content] NTEXT NULL,
    [BlogId] INT NOT NULL,
    CONSTRAINT [PK_dbo.Posts] PRIMARY KEY CLUSTERED ([PostId] ASC),
    CONSTRAINT [FK_dbo.Posts_dbo.Blogs_BlogId] FOREIGN KEY ([BlogId]) REFERENCES [dbo].[Blogs] ([BlogId]) ON DELETE CASCADE
);

2. Tworzenie aplikacji

Aby zachować prostotę, utworzymy podstawową aplikację konsolową, która używa usługi Database First do wykonywania 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ść DatabaseFirstSample jako nazwę
  • Wybierz OK

 

3. Model inżyniera odwrotnego

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ę Generuj z bazy danych i kliknij przycisk Dalej

    Wizard Step 1

  • Wybierz połączenie z bazą danych utworzoną w pierwszej sekcji, wprowadź ciąg BloggingContext jako nazwę parametry połączenia i kliknij przycisk Dalej

    Wizard Step 2

  • Kliknij pole wyboru obok pozycji "Tabele", aby zaimportować wszystkie tabele, a następnie kliknij przycisk Zakończ.

    Wizard Step 3

 

Po zakończeniu procesu inżyniera odwrotnego nowy model zostanie dodany do projektu i otwarty, aby wyświetlić go w Projektant Entity Framework. Plik App.config został również dodany do projektu ze szczegółami połączenia dla bazy 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

 

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 DF

 

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. Obsługa zmian bazy danych

Teraz nadszedł czas, aby wprowadzić pewne zmiany w schemacie bazy danych, kiedy wprowadzamy te zmiany, musimy również zaktualizować nasz model, aby odzwierciedlał te zmiany.

Pierwszym krokiem jest wprowadzenie pewnych zmian w schemacie bazy danych. Dodamy tabelę Users do schematu.

  • Kliknij prawym przyciskiem myszy bazę danych DatabaseFirst.Blogging w Eksploratorze serwera i wybierz pozycję Nowe zapytanie
  • Skopiuj następujący kod SQL do nowego zapytania, a następnie kliknij prawym przyciskiem myszy zapytanie i wybierz polecenie Wykonaj
CREATE TABLE [dbo].[Users]
(
    [Username] NVARCHAR(50) NOT NULL PRIMARY KEY,  
    [DisplayName] NVARCHAR(MAX) NULL
)

Po zaktualizowaniu schematu nadszedł czas, aby zaktualizować model przy użyciu tych zmian.

  • Kliknij prawym przyciskiem myszy puste miejsce modelu w Projektant EF i wybierz pozycję "Aktualizuj model z bazy danych...", spowoduje to uruchomienie Kreatora aktualizacji

  • Na karcie Dodawanie Kreatora aktualizacji zaznacz pole wyboru obok pozycji Tabele, co oznacza, że chcemy dodać wszystkie nowe tabele ze schematu. Karta Odświeżanie zawiera wszystkie istniejące tabele w modelu, które będą sprawdzane pod kątem zmian podczas aktualizacji. Na kartach Usuń są wyświetlane wszystkie tabele, które zostały usunięte ze schematu, a także zostaną usunięte z modelu w ramach aktualizacji. Informacje na tych dwóch kartach są automatycznie wykrywane i udostępniane tylko do celów informacyjnych. Nie można zmienić żadnych ustawień.

    Refresh Wizard

  • Kliknij przycisk Zakończ w Kreatorze aktualizacji

 

Model jest teraz aktualizowany w celu uwzględnienia nowej jednostki Użytkownik, która jest mapowania na tabelę Users dodaliśmy do bazy danych.

Model Updated

Podsumowanie

W tym przewodniku przyjrzeliśmy się programowi Database First, który pozwolił nam utworzyć model w programie EF Projektant na podstawie istniejącej bazy danych. Następnie użyliśmy tego modelu do odczytywania i zapisywania danych z bazy danych. Na koniec zaktualizowaliśmy model w celu odzwierciedlenia zmian wprowadzonych w schemacie bazy danych.