Devo usar um ORM apenas ao lidar com objetos do Modelo de Dados?

5

Eu sou novo no ORM e começamos a desenvolver um novo sistema usando o NHibernate como o ORM.

Acho que essa pergunta pode se referir a qualquer ORM e qualquer idioma / plataforma.

O Líder da Equipe disse que deveríamos usar o NHibernate somente ao recuperar nossos objetos de modelo de dados do domínio, ou seja, não usar nenhuma seleção ou agregação do NHibernate que recuperasse primitivos únicos ou uma lista de primitivos.

A razão por trás disso é que precisamos fazer uma distinção entre o ORM clássico e outras habilidades, de modo que o usual select e select max irá usar um projeto DAL "clássico".

Eu acho que isso não é tão bom, porque nós quebramos o acesso a dados para dois, e o que está errado usando habilidades do NHibernate que são checadas no tempo de compilação?

Há alguma razão para fazer essa distinção?

    
por Mithir 06.03.2013 / 07:52
fonte

1 resposta

3

Você terá mais sorte usando a funcionalidade incluída no ORM. O NHibernate é incrivelmente flexível e sabe quantos bancos de dados diferentes funcionam. Usá-lo permitirá que sua camada de banco de dados seja facilmente transportável.

Eu diria ao líder da sua equipe:

  • O NHibernate produz consultas otimizadas
  • O NHibernate faz um carregamento lento
  • Permitirá a portabilidade em várias plataformas de banco de dados
  • Suporta sua própria e poderosa linguagem de consulta.

Não se preocupe com o código de acesso a dados e deixe isso para o ORM. Concentre-se na sua lógica de negócios e no domínio do problema.

EDIT: Uma coisa que eu acabei de pensar é que, se você estiver carregando manualmente os objetos, provavelmente perderá os melhores recursos do NHibernate, porque seus objetos serão desconectados.

    
por 06.03.2013 / 09:20
fonte