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:
EntityObject
POCO
POCO Proxy (proxy dnamic)
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:
- A classe de dados personalizada deve ser declarada com acesso público.
- A classe de dados personalizada não deve ser selada (NotInheritable em Visual Basic)
- A classe de dados personalizada não deve ser abstrata (MustInherit noem Visual Basic).
- A Opção ProxyCreationEnabled não deve ser definida como false (o padrão é true) na classe de contexto
- Cada propriedade de navegação deve ser declarada como público e virtual
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 Overridable Property Padrao As Padrao 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: