Curso Entity Framework - Os tipos de entidades - IV


Nesta aula vamos analisar os tipos de entidades que podemos encontrar no Entity Framework.(aula anterior)

Havia quatro tipos de entidades no Entity Framework 4.x:

  1. EntityObject

  2. POCO

  3. POCO Proxy (proxy dnamic)

  4. Entidades Self-Tracking.

A partir do Entity Framework 5.0 as entidades usadas são a entidade POCO e a entidade proxy dinâmico. As entidades do tipo EntityObject costumavam ser usadas com o ObjectContext que não está sendo mais usado a partir do Entity Framework 5.0. Além disso, não é recomendado o uso de entidades Self-Tracking ou de automonitoramento.

1- POCO (Plain Old CLR Object):

Uma classe POCO é a uma classe que não depende de qualquer classe base específica do framework. É como qualquer outra classe normal. sendo por isso chamada de "Objetos Plain Old CLR".

Estas entidades POCO (também conhecidos como objetos de persistência-ignorante) suportam o mesmo comportamento para consulta, inserção, atualização e exclusão como os tipos de entidades que são gerados pelo Modelo de Dados de Entidade. Por exemplo: A seguir temo uma classe Aluno POCO:

Nota: A Persistence Ignorance significa que podemos definir uma camada de domínio que contém entidades que são independentes do mecanismo de persistência usado.

Public Class Aluno
    Public Property AlunoId As Integer
    Public Property AlunoNome As String
    Public Property Idade As Integer

End Class

2- Dinamyc Proxy (POCO Proxy):

Um Proxy dinâmico é uma classe proxy em tempo de execução de uma entidade POCO. Uma entidade POCO torna-se uma entidade POCO Proxy se ele atende aos requisitos determinados para permitir o lazy loading (carregamento tardio) e controle de alterações automático. Isto adiciona alguns métodos em tempo de execução a sua classe POCO que faz o controle de alterações instantâneas e o carregamento tardio.

Lazy Loading - é o mecanismo utilizado pelos frameworks de persistência para carregar informações sob demanda.
Esse mecanismo torna as entidades mais leves, pois suas associações são carregadas apenas no momento em que o
método que disponibiliza o dado associativo é chamado. Assim quando objetos são retornados por uma consulta,
os objetos relacionados não são carregados ao mesmo tempo, ao invés, eles são carregados automaticamente
quando a propriedade de navegação for acessada. 

Uma entidade POCO devem atender aos seguintes requisitos para se tornar um POCO proxy:

Por padrão o proxy dinâmico está habilitado para cada entidade. No entanto, você pode desabilitar o proxy dinâmico, definindo a opção ProxyCreationEnabled para false na classe de contexto.:
Exemplo: context.Configuration.ProxyCreationEnabled = False

O Entity Data Model gera entidades POCO que satisfazem a exigência acima para o proxy dinâmico por padrão.

Abaixo vemos a classe POCO Aluno gerada pelo EDM:

Partial Public Class Aluno
    Public Property AlunoId As Integer
    Public Property AlunoNome As String
    Public Property PadraoId As Integer
    Public Property RowVersion As Byte()

    Public Overridable Property Padrao As Padrao
    Public Overridable Property AlunoEndereco As AlunoEndereco
    Public Overridable Property Cursos As ICollection(Of Curso) = New HashSet(Of Curso)

End Class

Uma Entidade pode ter dois tipos de propriedades, as propriedades escalares e as propriedades de navegação.

Propriedades das entidades

Cada entidade e cada associação de um EDM , bem como o próprio modelo possui propriedades. Vamos alterar algumas propriedades da entidade Aluno do modelo EscolaDBModel.

Primeiro vamos selecionar a entidade para ver as suas propriedades na janela de propriedades:

Na janela de propriedades (figura ao lado) podemos ver que a entidade possui o nome Aluno tomado diretamente da tabela no banco de dados.

Observe também que ela possui uma propriedade chamada Entity Set Name.

Um Entity Set é um container para uma coleção de entidades de um tipo único. Por isso, a entity set chamada Alunos contém uma coleção de entidades Aluno.

Os nomes foram gerados pelo assistente e ele não tem a habilidade de automaticamente colocar os nomes no plural ou singular quando for mais apropriado. No nosso caso, como ele tomou o nome das tabelas que já estão no plural, não será necessário fazer ajustes. 

Poderíamos alterar o nome das propriedades para o modelo fazer mais sentido quando for o caso.

As propriedades de navegação (Proprieties Navigation) também possuem o nome adotado das suas entidades associadas.

A entidade Curso possui duas propriedades de navegação para representar a associação para com as entidades Professor e Alunos.

Na próxima aula vamos ver como podemos consultar o modelo de entidades.

Eu rogo por eles (os seus discípulos); não rogo pelo mundo, mas por aqueles que me deste, porque são teus. (oração de Jesus)
João 17:9

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

 

             Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter
 

Referências:


José Carlos Macoratti