Entity Framework - представления
Представление - это объект, который содержит данные, полученные с помощью предопределенного запроса. Представление - это виртуальный объект или таблица, набор результатов которых является производным от запроса. Она очень похожа на настоящую таблицу, поскольку содержит столбцы и строки данных. Ниже приведены некоторые типичные варианты использования представлений.
- Фильтровать данные базовых таблиц
- Фильтровать данные в целях безопасности
- Централизовать данные, распределенные по нескольким серверам
- Создать многоразовый набор данных
Представления можно использовать так же, как и таблицы. Чтобы использовать представление как сущность, сначала вам нужно добавить представления базы данных в EDM. После добавления представлений в вашу модель вы можете работать с ней так же, как и с обычными объектами, за исключением операций создания, обновления и удаления.
Давайте посмотрим, как добавить в модель представления из базы данных.
Step 1 - Создайте новый проект консольного приложения.
Step 2 - Щелкните проект правой кнопкой мыши в проводнике решений и выберите «Добавить» → «Новый элемент».
Step 3 - Выберите модель данных сущности ADO.NET на средней панели и введите имя ViewModel в поле «Имя».
Step 4 - Нажмите кнопку «Добавить», чтобы открыть диалоговое окно «Мастер модели данных сущности».
Step 5 - Выберите EF Designer из базы данных и нажмите кнопку «Далее».
Step 6 - Выберите существующую базу данных и нажмите Далее.
Step 7 - Выберите Entity Framework 6.x и нажмите Далее.
Step 8 - Выберите таблицы и представления из своей базы данных и нажмите «Готово».
Вы можете видеть в окне дизайнера, что представление создано, и вы можете использовать его в программе как объект.
В обозревателе решений вы можете видеть, что класс MyView также создается из базы данных.
Давайте возьмем пример, в котором все данные извлекаются из представления. Ниже приведен код -
class Program {
static void Main(string[] args) {
using (var db = new UniContextEntities()) {
var query = from b in db.MyViews
orderby b.FirstMidName select b;
Console.WriteLine("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...
Мы рекомендуем вам выполнить приведенный выше пример пошагово для лучшего понимания.