Учебники

Entity Framework — Представления

Представление — это объект, который содержит данные, полученные с помощью предварительно определенного запроса. Представление — это виртуальный объект или таблица, чей набор результатов получен из запроса. Это очень похоже на реальную таблицу, потому что она содержит столбцы и строки данных. Ниже приведены некоторые типичные виды использования —

  • Фильтровать данные базовых таблиц
  • Фильтрация данных в целях безопасности
  • Централизуйте данные, распределенные по нескольким серверам
  • Создать повторно используемый набор данных

Представления могут использоваться аналогичным образом, как и таблицы. Чтобы использовать представление как сущность, сначала вам нужно добавить представления базы данных в EDM. После добавления представлений к вашей модели вы можете работать с ней так же, как с обычными объектами, за исключением операций Create, Update и Delete.

Давайте посмотрим, как добавить виды в модель из базы данных.

Шаг 1 — Создайте новый проект консольного приложения.

Проект приложения

Шаг 2 — Щелкните правой кнопкой мыши проект в обозревателе решений и выберите Добавить → Новый элемент.

Project Solution Explorer

Шаг 3 — Выберите ADO.NET Entity Data Model из средней панели и введите имя ViewModel в поле Имя.

Шаг 4 — Нажмите кнопку «Добавить», которая запустит диалоговое окно «Мастер модели данных объекта».

Кнопка Добавить

Шаг 5 — Выберите EF Designer из базы данных и нажмите кнопку Далее.

Мастер Entity Model

Шаг 6 — Выберите существующую базу данных и нажмите Далее.

Существующая база данных

Шаг 7 — Выберите Entity Framework 6.x и нажмите «Далее».

Entity Framework Next

Шаг 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...

Мы рекомендуем выполнить вышеприведенный пример пошагово для лучшего понимания.