Dodawanie modelu (2012)

Autor : Rick Anderson

Uwaga

Zaktualizowana wersja tego samouczka jest dostępna tutaj, która używa ASP.NET MVC 5 i Visual Studio 2013. Jest ona bezpieczniejsza, znacznie prostsza do naśladowania i demonstruje więcej funkcji.

W tej sekcji dodasz kilka klas do zarządzania filmami w bazie danych. Te klasy będą częścią "modelu" aplikacji ASP.NET MVC.

Użyjesz .NET Framework technologii dostępu do danych znanej jako Entity Framework, aby zdefiniować te klasy modelu i pracować z tymi klasami. Program Entity Framework (często określany jako EF) obsługuje paradygmat programowania o nazwie Code First. Code First umożliwia tworzenie obiektów modelu przez pisanie prostych klas. (Są one również znane jako klasy POCO z "zwykłych obiektów CLR.") Następnie możesz utworzyć bazę danych na bieżąco z klas, co umożliwia bardzo czysty i szybki przepływ pracy programowania.

Dodawanie klas modelu

W Eksplorator rozwiązań kliknij prawym przyciskiem myszy folder Models, wybierz polecenie Dodaj, a następnie wybierz pozycję Klasa.

Zrzut ekranu przedstawiający okno Eksplorator rozwiązań. Opcja Dodaj jest zaznaczona w menu kliknij prawym przyciskiem myszy modele, a w menu podrzędnym jest zaznaczona opcja Klasa.

Wprowadź nazwę klasy "Movie".

Dodaj do klasy następujące pięć właściwości Movie :

public class Movie 
{
    public int ID { get; set; }
    public string Title { get; set; }
    public DateTime ReleaseDate { get; set; }
    public string Genre { get; set; }
    public decimal Price { get; set; }
}

Użyjemy Movie klasy do reprezentowania filmów w bazie danych. Każde wystąpienie Movie obiektu będzie odpowiadać wierszowi w tabeli bazy danych, a każda właściwość Movie klasy będzie mapować na kolumnę w tabeli.

W tym samym pliku dodaj następującą MovieDBContext klasę:

public class MovieDBContext : DbContext 
{
    public DbSet<Movie> Movies { get; set; } 
}

Klasa MovieDBContext reprezentuje kontekst bazy danych filmów platformy Entity Framework, który obsługuje pobieranie, przechowywanie i aktualizowanie Movie wystąpień klas w bazie danych. Element MovieDBContext pochodzi z klasy bazowej DbContext dostarczonej przez program Entity Framework.

Aby móc odwoływać DbContext się do elementów i DbSet, należy dodać następującą using instrukcję w górnej części pliku:

using System.Data.Entity;

Pełny plik Movie.cs jest pokazany poniżej. (Usunięto kilka instrukcji using, które nie są potrzebne).

using System;
using System.Data.Entity;

namespace MvcMovie.Models
{
    public class Movie
    {
        public int ID { get; set; }
        public string Title { get; set; }        
        public DateTime ReleaseDate { get; set; }        
        public string Genre { get; set; }
        public decimal Price { get; set; }
    }

    public class MovieDBContext : DbContext
    {
        public DbSet<Movie> Movies { get; set; }
    }
}

Tworzenie parametrów połączenia i praca z bazą danych SQL Server LocalDB

Utworzona MovieDBContext klasa obsługuje zadanie nawiązywania połączenia z bazą danych i mapowania Movie obiektów na rekordy bazy danych. Można jednak zadać jedno pytanie, w jaki sposób określić bazę danych, z którą będzie się łączyć. W tym celu należy dodać informacje o połączeniu w pliku Web.config aplikacji.

Otwórz plik Web.config katalogu głównego aplikacji. (Nie plik Web.config w folderze Views ). Otwórz plik Web.config opisany na czerwono.

Zrzut ekranu przedstawiający okno Eksplorator rozwiązań. Konfiguracja dot sieci Web jest zakreślina na czerwono.

Dodaj następujące parametry połączenia do <connectionStrings> elementu w pliku Web.config .

<add name="MovieDBContext" 
   connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" 
   providerName="System.Data.SqlClient" 
/>

Poniższy przykład przedstawia część pliku Web.config z dodanymi nowymi parametrami połączenia:

<connectionStrings>
  <add name="DefaultConnection" 
       connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-MvcMovie-2012213181139;Integrated Security=true" 
       providerName="System.Data.SqlClient" 
  />    
  <add name="MovieDBContext" 
       connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" 
       providerName="System.Data.SqlClient" 
  /> 
</connectionStrings>

Ta niewielka ilość kodu i kodu XML to wszystko, co należy napisać, aby reprezentować i przechowywać dane filmu w bazie danych.

Następnie utworzysz nową MoviesController klasę, której można użyć do wyświetlania danych filmu i umożliwienia użytkownikom tworzenia nowych list filmów.