Strong-stuff.ru

Образование Онлайн
5 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Entity framework уроки

Подход Code-First

Дата изменения: 12.10.2017

Поход, называемый Code First (сначала код) предполагает минимальное участие в проектировании сущностей базы данных программистом. Он просто пишет код, остальное делает Entity и Visual Studio.

Он подходит в случаях если главное в проекте – бизнес логика, а база данных – это способ хранения данных. Или в случаях если проект уже написан, но в качестве источников данных использованы списки, массивы, коллекции. Code First позволяет с минимальными усилиями изменить проект с использованием баз данных в качестве источников данных вместо стандартных коллекций .NET.

Мы создадим веб приложение использующее базу данных многоквартирного дома. В Основе его будут две модели: жильцы и квартиры.

Создание веб приложения

Первый шаг — создание проекта:

  1. Откройте Visual Studio и создайте новый проект с именем EnrollmentApp
  2. Выберите шаблон MVC, уберите аутентификацию (кнопка изменить проверку подлинности) и нажмите создать проект.

Когда проект будет создан подключите к нему Entity.

Создание классов модели

Работа с Entity при подходе Code First начинается с создания типов данных. Типом, описывающим жильца будет класс Tenant, описывающим квартиру – класс Apartment.

Создайте в папке Models проекта соответствующие файлы классов и определите их как показано ниже:

Файл Tenant.cs:

Файл Apartment.cs:

Оба класса будут преобразованы в наборы данных, то есть таблицы базы данных с помощью Entity. Их свойства станут столбцами таблиц. Значение этих свойств значениями в строках.

Чтобы Entity понял, как преобразовать тип C# в тип базы данных, мы при определении должны следовать нескольким правилам:

  • все свойства должны быть открытыми (public);
  • свойство, которое должно стать первичным ключом таблицы должно иметь имя ID, либо его имя должно оканчиваться на ID (CustomerID, BisnessID, ApartmentID)
  • если нужно пометить свойство как первичный ключ будущей сущности, но его имя не содержит ID, то сделайте это с помощью атрибута [Key];
  • если класс не содержит ни одного свойство содержащего в имени ID, Entity сам добавит такой столбец, имя этого столбца будет совпадать с именем таблицы.

Кроме обычных свойств классы моделей могут содержать виртуальные свойства. Они становятся навигационными свойствами при преобразовании в модель EDX. Навигационные свойства характеризуют связь между таблицами.

В нашем случае это связь один ко многим – несколько жильцов могут быть зарегистрированы в одной квартире. Поэтому класс Apartment содержит внутренний массив экземпляров Tenant.

Создание контекста данных

Класс, который обеспечивает взаимодействие между классами-моделями и одноименными таблицами в базе данных называется контекстом.

Создавая контекст мы как бы говорим инфраструктуре: «Я не хочу разбираться в твоих API, дай мне простой инструмент манипуляции данными». Этот инструмент – контекст.

Контекст класс, наследуемый от System.Data.Entity.DbContext.

Он содержит:

  • строготипизированые открытые свойства DbSet;
  • один или несколько конструкторов.

Рекомендуемый Microsoft стиль – это создание контекста в отдельной папке проекта.

Создайте в проекте папку DAL (от Data Acsess Layer). Затем создайте в папке новый класс, назовите его RegistrationContext.cs и приведите его в соответствие с содержимым ниже:

RegistrationContext.cs

Строка подключения

После создания контекста нужно добавить в приложение строку подключения БД.

Строка подключения – это описание нескольких параметров:

  • имя базы данных;
  • где расположены ее файлы;
  • кто ее поставщик;
  • режим подключения.

Указать строку подключения можно несколькими способами:

  1. В файле web.config.
  2. В конструкторе.
Читать еще:  Декоративная штукатурка мокрый шелк видео уроки

В нашем приложении мы будем использовать локальную базу данных. Локальные базы данных расположены на локальных серверах, то есть расположены на той же машине с которой запускается приложение. Сервер, который управляет локальными базами MS SQL Server Express, он встроен в Visual Studio.

Однако, в реальных приложениях такой подход не годится. MS SQL Server Express не умеет работать с ISS.

В файле web,config строка подключения должна быть вписана внутри тега перед тегом

На листинге ниже выделена серым цветом. Располагается внутри тега

Если вы не впишите строку подключения в файл web.config, то компилятор будет искать ее в параметре конструктора контекста.

Для локальных БД достаточно только имени БД. Для удаленных нужно вписывать полную строку.

Все о строках подключения читайте в официальной документации Microsoft.

Сайт с шаблонами для срока подключения к базам данных разных производителей смотрите на сайте https://www.connectionstrings.com

После создания строки подключения Entity ничего больше от вас не нужно. Она знает какие типы вы храните в базе из контекста. Из строки подключения знает где располагается база и какой у нее провайдер.

Осталось достроить веб приложение создав для него бизнес логику и логику представлений

Создание контроллера и представлений

Бизнес логика контроллера в MVC приложения традиционно лежит на плечах контроллера, логика представлений – на представлениях.

Создать ее автоматически на основе моделей вы можете, использовав шаблон в Visual Studio.

  1. Щелкните правой кнопкой на папке Сontrollers в проекте. Выберите Добавить(Add) -Контроллер.
  2. Выберите шаблон Контроллер MVC 5 c использованием Entity Framework.

В выпадающем списке «класс контекста» выберите созданный вами контекст (RegistrationContext), в списке «класс модели» укажите класс Tentant. Галочки оставьте по умолчанию.

После нажатия кнопки добавить Visual Studio на создаст вам контроллер с методами действия для каждой возможно операцией с базой данных. Мы рассмотрим их на следующих уроках.

Главное, что все они работают на основе контекста, объект которого создается в классе контроллера:

Поиск:

Добавление элемента:

Удаление:

А так сохраняются изменения после каждой операции:

Все операции на основе объекта контекста.

Создание инициализатора

Entity может автоматически создать, удалить или произвести любые изменения с базой данных, когда приложение запускается. Инициализатор – это блок кода, который указывает, что должно быть сделано с базой, когда приложение только запустилось.

Очевидно, что, если приложение запущено в первый раз, в базе нет никаких данных. Это можно исправить, добавив в инициализатор логику добавления в базу первичных данных. Их затем можно удалить, изменить или добавить новые.

Инициализатор, как и контекст просто класс. Часть общей логики DAL (Data Access Layer)

С помощью средств Visual Studio добавьте в папку DAL (в ту же, где вы создавали контекст) новый класс с названием EnrollmentInitializer.cs

Содержание файла EnrollmentInitializer.cs:

EnrollmentInitializer.cs

В классе реализован единственный метод Seed, который принимает параметром контекст данных. Мы добавляет элементы список. А затем списки по элементной — таблицу посредством объекта контекста.

Приложение готово. Вы можете отшлифовать его, пройдясь по представлениям, настроив поля ввода, изменив домашнюю страницу.

Главное, чего мы добились – это сохранения в базу и извлечение из нее простыми средствами.

Чтобы просмотреть, что после запуска приложения у вас оказалось в базе.

Читать еще:  Полиглот английский 13 урок

  • Закройте браузер и прервите выполнение приложения;
  • Откройте окно обозреватель серверов и внутри пункта подключение данных строчку с названием вашего контекста (RegistrationContext). Раскройте этот пункт.
  • Щелкните правой кнопкой на интересующей вас таблице и выберите пункт «показать таблицу данных»

Entity Framework 6

Всем доброго времени суток. В данной первой статье, посвященной Entity Framework, я бы хотел рассказать для чего эта технология нужна и какие преимущества предлагает. Entity Framework — это объектно — реляционный модуль сопоставления, который позволяет разработчикам работать с реляционными базами данных, как с объектами классов. Таблица в базе данных — это класс. Поля таблицы — это свойства класса. Использование данной технологии позволяет оградить программистов от написания большого объёма кода, который обычно требуется для доступа к данным.

Данная технология впервые появилась в 2008 году (версия 1.0), на текущий момент последняя версия — Entity Framework 6. В настоящий момент — это рекомендуемая Microsoft технология для работы с базами данных.

Entity Framework , другими словами, можно назвать библиотекой ORM от Microsoft.

ORM (Object relational mapping) — это объектно-реляционное отображение (сопоставление) — технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных».

Entity Framework (EF) – это слой абстракции (модель сущностей или, её ещё по-другому называют, концептуальная модель, Entity Data Model (EDM) , которая определяет правила отображения объектов в базе данных.

В EF существует несколько подходов к работе, или по-другому, несколько способов создания этой модели:

Database First – создание модели сущностей и объектной модели (классы) из существующей базы данных. Описание модели сущностей сохраняется в виде xml файла, по которому EF создает модель EDM.

Model First — создание xml-файла модели при помощи дизайнера, на основании которой генерируются база данных и классы (объектная модель).

Code First – написание кода классов при отсутствии модели и БД. Далее на основе этих классов происходит генерация базы данных и модели сущностей EDM.

В следующих уроках будет рассмотрен каждый из этих подходов.

Давайте теперь посмотрим как добавить эту технологию в наш проект. Добавлять будем с помощью менеджера пакетов «Nuget». В проекте выбираем References => «Управление пакетами NuGet» :

Если менеджер пакетов отсутствует — его нужно установить. Его можно найти в Google по запросу «add nuget to visual studio 2013». Либо для Visual Studio 2013 можно скачать по ссылке .

На данном этапе хотелось бы отметить, что иногда менеджер пакетов не может отобразить ни один пакет. Связано это с тем, что у вас скорее всего запущены какие-либо программы по фильтрации трафика. Самый простой вариант в данном случае — это отключить антивирус. Далее в поиске набираем «Entity Framework»:

Нажимаем «Установить». Далее принимаем лицензионное соглашение. После этого Entity Framework устанавливается.

После этого в ссылках проекта мы видим, что Entity Framework был успешно установлен:

В данной статье вы узнали, что такое Entity Framework и научились добавлять его в свой проект.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.

Entity Framework Начало работы с Entity Framework

замечания

Entity Framework (EF) — объектно-реляционный картограф (ORM), который позволяет разработчикам .NET работать с реляционными данными с использованием объектов, специфичных для домена. Это устраняет необходимость в большей части кода доступа к данным, который разработчикам обычно приходится писать.

Читать еще:  Ирина колесова уроки английского языка

Entity Framework позволяет создавать модель путем написания кода или использования полей и строк в EF Designer. Оба этих подхода могут использоваться для таргетинга на существующую базу данных или создания новой базы данных.

Entity Framework является основным ORM, который Microsoft предоставляет для .NET Framework и рекомендованной Microsoft технологии доступа к данным.

Версии

Установка пакета Entity Framework NuGet

В своей Visual Studio откройте окно Solution Explorer, затем щелкните правой кнопкой мыши на своем проекте и выберите « Управление пакетами NuGet» в меню:

В открывшемся окне введите EntityFramework в поле поиска в правом верхнем углу.

Если вы используете Visual Studio 2015, вы увидите что-то вроде этого:

Затем нажмите «Установить».

Мы также можем установить инфраструктуру сущности с помощью консоли диспетчера пакетов. Для этого вам сначала нужно открыть его с помощью меню «Сервис» -> «Диспетчер пакетов NuGet» -> «Диспетчер пакетов», затем введите следующее:

Это установит Entity Framework и автоматически добавит ссылку на сборку в вашем проекте.

Использование Entity Framework из C # (сначала код)

Сначала код позволяет создавать ваши сущности (классы) без использования GUI-дизайнера или файла .edmx. Сначала он называется Code , потому что вы можете сначала создать свои модели, а структура Entity будет автоматически создавать базу данных в соответствии с сопоставлениями. Или вы также можете использовать этот подход с существующей базой данных, которая сначала называется кодом с существующей базой данных. Например, если вы хотите, чтобы таблица содержала список планет:

Теперь создайте свой контекст, который является мостом между вашими сущностями и базой данных. Дайте ему один или несколько DbSet<> :

Мы можем использовать это, выполнив следующие действия:

В этом примере мы создаем новую Planet с свойством Name со значением «Jupiter» и свойство AverageDistanceFromSun со значением 778.5

Затем мы можем добавить эту Planet в контекст с помощью DbSet Add() DbSet и зафиксировать наши изменения в базе данных с помощью метода SaveChanges() .

Или мы можем извлекать строки из базы данных:

Что такое Entity Framework?

Написание и управление кодом ADO.Net для доступа к данным — утомительная и монотонная работа. Microsoft предоставила инфраструктуру O / RM под названием «Entity Framework» для автоматизации действий, связанных с базой данных для вашего приложения.

Структура Entity — это структура Object / Relational Mapping (O / RM). Это усовершенствование ADO.NET, которое дает разработчикам автоматизированный механизм для доступа и хранения данных в базе данных.

Что такое O / RM?

ORM — это инструмент для хранения данных из объектов домена в реляционную базу данных, такую ​​как MS SQL Server, автоматическим способом без большого программирования. O / RM включает в себя три основные части:

  1. Объекты класса домена
  2. Объекты реляционной базы данных
  3. Отображение информации о том, как объекты домена сопоставляются с объектами реляционной базы данных ( ex tables, views и хранимые процедуры)

ORM позволяет нам сохранить наш дизайн базы данных отдельно от нашего класса класса. Это делает приложение удобным и расширяемым. Он также автоматизирует стандартную операцию CRUD (создание, чтение, обновление и удаление), так что разработчику не нужно писать его вручную.

Ссылка на основную публикацию
Adblock
detector