Curso Entity Framework - Code First com Suporte a Enum - XXVII
Nesta aula vou mostrar como podemos usar enumerações com o Entity Framework. (aula anterior) |
Uma das novidades da Entity Framework é o suporte a Enum no Code First.
Neste aula veremos como usar este recurso usando a Linguagem VB .NET em uma aplicação Console, mas os conceitos se aplicam também á linguagem C#.
Os recursos usados são :
Visual Studio 2013 Express for desktop e SQL Server Express 2012 (LocalDB)
Criando o projeto
Abra o Visual Studio 2013 Express for Desktop e clique em New Project;
Selecione a linguagem Visual Basic (ou C#) -> Windows -> Console Application e informe o nome EF5_Enum e clique em OK;
Vamos agora habilitar o Entity Framework para nosso projeto Console.
No menu TOOLS clique em Library Package Manager e a seguir em Manage Nuget Packages for Solution...
Selecione EntityFramework e clique no botão Install;
Confirme a instalação.
O DbContext e tipos DbSet são definidos no assembly do
EntityFramework, é por isso adicionamos a referência a esta DLL usando o
pacote NuGet para EntityFramework.
Note que além doa assembly EntityFramework, as referências a
System.ComponentModel.DataAnnotations e montagens
System.Data.Entity são automaticamente adicionados no projeto também.
Definindo o Domínio
Vamos definir um Modelo de domínio bem simples apenas para mostrar o recurso Enum.
No menu PROJECT clique em Add Class;
A seguir informe o nome Alunos.vb e digite o código abaixo onde definimos uma Enumeração Cursos e a classe Alunos:
Public Enum Cursos Engenharia Matemática Quimica End Enum Public Class Alunos Public Property Id As Integer Public Property Nome As String Public Property Curso As Cursos End Class |
Definimos uma Enum com o nome Cursos. Por padrão uma enumeração é do tipo integer/int. A propriedade Curso na classe Alunos é do tipo da enumeração Cursos.
No Entity Framework uma enumeração pode ter os seguintes tipos: Byte, Int16, Int32, Int64 or SByte.
Vamos criar uma outra classe chamada AlunoContexto que será o nosso contexto. O código desta classe é visto a seguir:
Imports
System.Data.Entity Public Class AlunoContextoInherits DbContext Public Property Aluno() As DbSet(Of Alunos) End Class |
Vamos agora definir o código no módulo Module1 para
Imports System.Data.Entity
.Nome = "Macoratti", _ .Curso = Cursos.Engenharia })
contexto.SaveChanges()
Dim
consulta = (From
d In
contexto.Aluno Where
d.Curso = Cursos.Engenharia).FirstOrDefault() Console.WriteLine("AlunoId: {0} Nome: {1}", consulta.Id, consulta.Nome) Console.ReadKey()
End Sub End Module |
Vemos a utilização do recurso Enum para criar um novo Aluno e para realizar uma consulta selecionando os alunos de um curso.
Abaixo vemos o recurso Intellisense exibindo os dados da enumeração Cursos:
Executando o projeto iremos obter o seguinte resultado:
Ao executar aplicação pela primeira vez, o Entity Framework criará um banco de dados para você. Como estamos usando o Visual Studio 2013 Express for desktop , o banco de dados será criado na instância LocalDB.
Por padrão, o Entity Framework nomeia o banco de dados após o nome completo do contexto derivado que para o nosso exemplo é EF5_Enum.AlunoContexto.
Abrindo a janela DataBase Explorer podemos ver o banco de dados e a tabela Alunos criados:
Pegue o projeto completo aqui: EF_Enum.zip
Na próxima aula vamos tratar do suporte aos tipo de dados Spatial: DbGeography e DbGeometry no Entity Framework.
Rom 3:10 como está escrito: Não há justo, nem sequer um.
Rom 3:11
Não há quem entenda; não há quem busque a Deus.Rom 3:12
Todos se extraviaram; juntamente se fizeram inúteis. Não há quem faça o bem, não há nem um só.
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ?
|
Referências: