Entity Framework - Vistas

Uma visualização é um objeto que contém dados obtidos por uma consulta predefinida. Uma visão é um objeto virtual ou tabela cujo conjunto de resultados é derivado de uma consulta. É muito semelhante a uma tabela real porque contém colunas e linhas de dados. A seguir estão alguns usos típicos de visualizações -

  • Filtrar dados de tabelas subjacentes
  • Filtrar dados para fins de segurança
  • Centralize os dados distribuídos em vários servidores
  • Crie um conjunto reutilizável de dados

As visualizações podem ser usadas de maneira semelhante à de tabelas. Para usar a visualização como uma entidade, primeiro você precisa adicionar visualizações do banco de dados ao EDM. Depois de adicionar vistas ao seu modelo, você pode trabalhar com ele da mesma maneira que as entidades normais, exceto para as operações Criar, Atualizar e Excluir.

Vamos dar uma olhada em como adicionar visualizações ao modelo do banco de dados.

Step 1 - Crie um novo projeto de aplicativo de console.

Step 2 - Clique com o botão direito no projeto no explorador de soluções e selecione Adicionar → Novo item.

Step 3 - Selecione ADO.NET Entity Data Model no painel do meio e insira o nome ViewModel no campo Name.

Step 4 - Clique no botão Adicionar que iniciará a caixa de diálogo Assistente de modelo de dados de entidade.

Step 5 - Selecione EF Designer do banco de dados e clique no botão Avançar.

Step 6 - Selecione o banco de dados existente e clique em Avançar.

Step 7 - Escolha Entity Framework 6.xe clique em Avançar.

Step 8 - Selecione tabelas e visualizações de seu banco de dados e clique em Concluir.

Você pode ver na janela do designer que uma visualização é criada e você pode usá-la no programa como uma entidade.

No explorador de soluções, você pode ver que a classe MyView também é gerada a partir do banco de dados.

Vamos dar um exemplo em que todos os dados são recuperados da visualização. A seguir está o 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();
      }
   }
}

Quando o código acima for executado, você receberá a seguinte saída -

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

Recomendamos que você execute o exemplo acima passo a passo para melhor compreensão.