Добавление модели (2012)
Примечание
Здесь доступна обновленная версия этого руководства, использующая ASP.NET MVC 5 и Visual Studio 2013. Это более безопасно, гораздо проще следовать и демонстрирует больше функций.
В этом разделе вы добавите некоторые классы для управления фильмами в базе данных. Эти классы будут частью модели приложения ASP.NET MVC.
Для определения этих классов моделей и работы с этими классами вы будете использовать технологию доступа к данным платформа .NET Framework, известную как Entity Framework. Платформа Entity Framework (часто называемая EF) поддерживает парадигму разработки Под названием Code First. Code First позволяет создавать объекты модели путем написания простых классов. (Они также известны как классы POCO, от "простых старых объектов CLR".) Затем вы можете создать базу данных на лету из ваших классов, что обеспечивает очень чистый и быстрый рабочий процесс разработки.
Добавление классов модели
В Обозреватель решений щелкните правой кнопкой мыши папку Модели, выберите Добавить, а затем — Класс.
Введите имя класса Movie.
Добавьте в класс следующие пять свойств 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; }
}
Мы будем использовать класс для Movie
представления фильмов в базе данных. Каждый экземпляр Movie
объекта будет соответствовать строке в таблице базы данных, а каждое Movie
свойство класса будет сопоставляться со столбцом в таблице.
В том же файле добавьте следующий MovieDBContext
класс:
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
}
Класс MovieDBContext
представляет контекст базы данных фильмов Entity Framework, который обрабатывает получение, хранение и обновление Movie
экземпляров класса в базе данных. Является MovieDBContext
производным DbContext
от базового класса, предоставляемого Entity Framework.
Чтобы иметь возможность ссылаться на DbContext
и DbSet
, необходимо добавить следующий using
оператор в начало файла:
using System.Data.Entity;
Ниже показан полный файл Movie.cs . (Были удалены несколько инструкций using, которые не нужны.)
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; }
}
}
Создание строки подключения и работа с SQL Server LocalDB
Созданный MovieDBContext
класс обрабатывает задачу подключения к базе данных и сопоставления Movie
объектов с записями базы данных. Один из вопросов, которые вы можете задать, — как указать базу данных, к которой будет подключаться. Это можно сделать, добавив сведения о подключении в файлWeb.config приложения.
Откройте корневой файлWeb.config приложения. (Не файлWeb.config в папке Views .) Откройте файлWeb.config , выделенный красным цветом.
Добавьте следующую строку подключения к элементу <connectionStrings>
в файлеWeb.config .
<add name="MovieDBContext"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True"
providerName="System.Data.SqlClient"
/>
В следующем примере показана часть файла Web.config с добавленной новой строкой подключения:
<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>
Этот небольшой объем кода и XML — это все, что необходимо написать для представления и хранения данных фильмов в базе данных.
Далее вы создадите новый MoviesController
класс, который можно использовать для отображения данных о фильмах и предоставления пользователям возможности создавать новые списки фильмов.