В этой главе мы узнаем о создании модели данных сущности с подходом Database First.
-
Подход Database First предоставляет альтернативу подходам Code First и Model First модели Entity Data. Он создает коды моделей (классы, свойства, DbContext и т. Д.) Из базы данных в проекте, и эти классы становятся связующим звеном между базой данных и контроллером.
-
Первый подход к базе данных создает структуру сущности из существующей базы данных. Мы используем все другие функциональные возможности, такие как синхронизация модели / базы данных и генерация кода, так же, как мы использовали их в подходе Model First.
Подход Database First предоставляет альтернативу подходам Code First и Model First модели Entity Data. Он создает коды моделей (классы, свойства, DbContext и т. Д.) Из базы данных в проекте, и эти классы становятся связующим звеном между базой данных и контроллером.
Первый подход к базе данных создает структуру сущности из существующей базы данных. Мы используем все другие функциональные возможности, такие как синхронизация модели / базы данных и генерация кода, так же, как мы использовали их в подходе Model First.
Давайте рассмотрим простой пример. У нас уже есть база данных, которая содержит 3 таблицы, как показано на следующем рисунке.
Шаг 1 — Давайте создадим новый консольный проект с именем DatabaseFirstDemo.
Шаг 2 — Чтобы создать модель, сначала щелкните правой кнопкой мыши ваш консольный проект в обозревателе решений и выберите Добавить → Новые элементы…
Шаг 3 — Выберите ADO.NET Entity Data Model из средней панели и введите имя DatabaseFirstModel в поле Имя.
Шаг 4 — Нажмите кнопку «Добавить», которая запустит диалоговое окно «Мастер модели данных объекта».
Шаг 5 — Выберите EF Designer из базы данных и нажмите кнопку Далее.
Шаг 6 — Выберите существующую базу данных и нажмите Далее.
Шаг 7 — Выберите Entity Framework 6.x и нажмите «Далее».
Шаг 8 — Выберите все таблицы Views и хранимую процедуру, которую вы хотите включить, и нажмите Finish.
Вы увидите, что модель Entity и классы POCO генерируются из базы данных.
Теперь давайте извлечем всех студентов из базы данных, написав следующий код в файле program.cs.
using System; using System.Linq; namespace DatabaseFirstDemo { class Program { static void Main(string[] args) { using (var db = new UniContextEntities()) { var query = from b in db.Students orderby b.FirstMidName select b; Console.WriteLine("All All student in the database:"); foreach (var item in query) { Console.WriteLine(item.FirstMidName +" "+ item.LastName); } Console.WriteLine("Press any key to exit..."); Console.ReadKey(); } } } }
Когда вышеуказанная программа будет выполнена, вы получите следующий вывод:
All student in the database: Ali Khan Arturo finand Bill Gates Carson Alexander Gytis Barzdukas Laura Norman Meredith Alonso Nino Olivetto Peggy Justice Yan Li Press any key to exit...
Когда вышеуказанная программа будет выполнена, вы увидите имена всех студентов, которые были ранее внесены в базу данных.
Мы рекомендуем выполнить вышеприведенный пример пошагово для лучшего понимания.