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.
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.
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.