Модели

Модели и БД

Данное руководство устарело. Актуальное руководство: Руководство по ASP.NET Core

Последнее обновление: 31.10.2015

Все сущности в приложении принято выделять в отдельные модели. В зависимости от поставленной задачи и сложности приложения можно выделить различное количество моделей. Так, в тестовом приложении из второй главы использовались две модели - класс для книги и класс для покупки книги.

Модели представляют собой простые классы и располагаются в проекте в каталоге Models. Модели описывают логику данных. Например, модель представляющая книгу и ее покупку:

public class Book
{
    // ID книги
    public int Id { get; set; }
    // название книги
    public string Name { get; set; }
    // автор книги
    public string Author { get; set; }
    // цена
    public int Price { get; set; }
}
public class Purchase
{
    // ID покупки
    public int PurchaseId { get; set; }
    // имя и фамилия покупателя
    public string Person { get; set; }
    // адрес покупателя
    public string Address { get; set; }
    // ID книги
    public int BookId { get; set; }
    // дата покупки
    public DateTime Date { get; set; }
}

Модель необязательно состоит только из свойств, кроме того, она может иметь конструктор, какие-нибудь вспомогательные метода. Но главное не перегружать класс модели и помнить, что его предназначение - описывать данные. Манипуляции с данными и бизнес-логика - это больше сфера контроллера.

Данные моделей хранятся в базе данных. Чтобы взаимодействовать с базой данных, очень удобно пользоваться фреймворком Entity Framework. Entity Framework поддерживает подход "Code first", который предполагает сохранение или извлечение информации из БД на SQL Server без создания схемы базы данных или использования дизайнера в Visual Studo. Наоборот, мы создаем обычные классы, а Entity Framework уже сам определяет, как и где сохранять объекты этих классов.

Выпуск ASP.NET MVC 4 уже включает Entity Framework 5.0, однако в проектах по типу Empty вам придется подключать фреймворк через пакетный менеджер NuGet.

Чтобы подключиться к базе данных через Entity Framework, нам нужен контекст данных. Контекст данных представляет собой класс, производный от класса DbContext. Контекст данных содержит одно или несколько свойств типа DbSet<T>, где T представляет тип объекта, хранящегося в базе данных. Допустим, создадим контекст данных для работы с вышеприведенными моделями Book и Purchase:

using System;
using System.Collections.Generic;
using System.Web;
using System.Data.Entity;

namespace BookStore.Models
{
    public class BookContext : DbContext
    {
        public DbSet<Book> Books { get; set; }
        public DbSet<Purchase> Purchases { get; set; }
    }
}

С помощью свойств Books и Purchases мы получаем доступ к данным соответствующих моделей, которые хранятся в базе данных.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850