Entity Framework - Vistas

Una vista es un objeto que contiene datos obtenidos mediante una consulta predefinida. Una vista es un objeto virtual o una tabla cuyo conjunto de resultados se deriva de una consulta. Es muy similar a una tabla real porque contiene columnas y filas de datos. A continuación se muestran algunos usos típicos de las vistas:

  • Filtrar datos de tablas subyacentes
  • Filtrar datos por motivos de seguridad
  • Centralice los datos distribuidos en varios servidores
  • Crea un conjunto de datos reutilizable

Las vistas se pueden utilizar de forma similar a como se pueden utilizar las tablas. Para usar la vista como una entidad, primero deberá agregar vistas de base de datos a EDM. Después de agregar vistas a su modelo, puede trabajar con él de la misma manera que las entidades normales, excepto para las operaciones Crear, Actualizar y Eliminar.

Echemos un vistazo a cómo agregar vistas al modelo desde la base de datos.

Step 1 - Cree un nuevo proyecto de aplicación de consola.

Step 2 - Haga clic con el botón derecho en el proyecto en el explorador de soluciones y seleccione Agregar → Nuevo elemento.

Step 3 - Seleccione ADO.NET Entity Data Model en el panel central e ingrese el nombre ViewModel en el campo Nombre.

Step 4 - Haga clic en el botón Agregar, que abrirá el cuadro de diálogo Asistente de modelo de datos de entidad.

Step 5 - Seleccione EF Designer de la base de datos y haga clic en el botón Siguiente.

Step 6 - Seleccione la base de datos existente y haga clic en Siguiente.

Step 7 - Elija Entity Framework 6.xy haga clic en Siguiente.

Step 8 - Seleccione tablas y vistas de su base de datos y haga clic en Finalizar.

Puede ver en la ventana del diseñador que se crea una vista y puede usarla en el programa como una entidad.

En el explorador de soluciones, puede ver que la clase MyView también se genera a partir de la base de datos.

Tomemos un ejemplo en el que todos los datos se recuperan de la vista. A continuación se muestra el código:

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();
      }
   }
}

Cuando se ejecuta el código anterior, recibirá el siguiente resultado:

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...

Le recomendamos que ejecute el ejemplo anterior paso a paso para una mejor comprensión.