BT

Início Notícias ORMs e a Ignorância da Persistência

ORMs e a Ignorância da Persistência

Favoritos

Julie Lerman notou recentemente que o Entity Framework pode trabalhar possuindo construtores e setters privados.

No teste publicado por Julie, pode-se ver que o Entity Framework (EF) é capaz de popular uma propriedade com setters privados e invocar um construtor privado sem grandes dificuldades. É possível observar como o EF realiza esta tarefa se referindo ao EntityProxyFactory e classes relacionadas, mas na essência, trata-se de uma combinação de reflection e IL Emits. O NHibernate ainda vai um passo além ao suportar acesso a atributos privados (o que também já sendo discutido para o EF). No entanto, atualmente ambos obrigam a existência de um construtor padrão (mesmo que este não seja público).

 De forma geral esta direção é boa pois, como Julie comenta, isso promove ignorância da persistência. De forma arquitetural, tanto o Entity Framework quanto o NHibernate suportam estes padrões que auxiliam a alcançar a ignorância da persistência:

O Entity framework possui respectivamente o DBSet e o DBContext, enquanto o NHibernate possui a API de QueryOver e o SessionContext. Apesar disso, para suportar lazy loading, atualmente ambos também suportam o padrão virtual proxy que contraria esse princípio (exigindo que as propriedades sejam marcadas como virtual).

A ignorância da persistência é geralmente considerada como boa prática; regras de negócio podem ser isoladas da lógica de persistência, ao contrário de quando se utiliza o padrão Active Record. Esta característica mantém seu design mais simples e mais testável.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

BT

Seu cadastro no InfoQ está atualizado? Poderia rever suas informações?

Nota: se você alterar seu email, receberá uma mensagem de confirmação

Nome da empresa:
Cargo/papel na empresa:
Tamanho da empresa:
País:
Estado:
Você vai receber um email para validação do novo endereço. Esta janela pop-up fechará em instantes.