Entity Framework - первый подход к базе данных
В этой главе давайте узнаем о создании модели данных сущности с использованием подхода Database First.
Подход Database First предоставляет альтернативу подходам Code First и Model First к модели данных сущности. Он создает коды моделей (классы, свойства, DbContext и т. Д.) Из базы данных в проекте, и эти классы становятся связующим звеном между базой данных и контроллером.
Первый подход к базе данных создает структуру сущности из существующей базы данных. Мы используем все остальные функции, такие как синхронизация модели / базы данных и генерация кода, точно так же, как мы использовали их в подходе Model First.
Возьмем простой пример. У нас уже есть база данных, содержащая 3 таблицы, как показано на следующем рисунке.
Step 1 - Создадим новый консольный проект с именем DatabaseFirstDemo.
Step 2 - Чтобы создать модель, сначала щелкните правой кнопкой мыши проект консоли в проводнике решений и выберите Добавить → Новые элементы…
Step 3 - Выберите модель данных сущности ADO.NET на средней панели и введите имя DatabaseFirstModel в поле «Имя».
Step 4 - Нажмите кнопку «Добавить», чтобы открыть диалоговое окно «Мастер модели данных сущности».
Step 5 - Выберите EF Designer из базы данных и нажмите кнопку «Далее».
Step 6 - Выберите существующую базу данных и нажмите Далее.
Step 7 - Выберите Entity Framework 6.x и нажмите Далее.
Step 8 - Выберите все представления таблиц и хранимые процедуры, которые вы хотите включить, и нажмите Готово.
Вы увидите, что модель 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...
Когда вышеуказанная программа будет выполнена, вы увидите имена всех студентов, которые были ранее введены в базу данных.
Мы рекомендуем вам выполнить приведенный выше пример пошагово для лучшего понимания.