Поделиться через


Добавление модели (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 класс, который можно использовать для отображения данных о фильмах и предоставления пользователям возможности создавать новые списки фильмов.