Nos últimos dois anos, desde que comecei a escrever aplicativos de negócios (antes de fazer programação de sistemas de front end de alto nível ou de muito baixo nível), aprendi conjuntos de dados, linq para sql e agora estrutura de entidade. A coisa lógica a seguir parece ser o NHibernate.
As razões pelas quais acabei na EF são: (1) ele tem o melhor suporte de designer e (2) o mais suportado pela Microsoft.
As razões (estas têm elementos de suposição) que eu estou interessado no NHibernate são: (1) ele pode não ser substituído por algo totalmente diferente tão rapidamente quanto o MS produz tecnologias de acesso a dados (2) Parece que é o front running ou o segundo a ferramenta de execução frontal para o que faz e (3) Parece bastante estável e rastreável ao longo do tempo.
Alguém publicou uma comparação dos dois? Um é melhor que o outro para certos tipos de arquiteturas? Ou é apenas uma questão de estilo e preferência?
fonte
Estamos fazendo um projeto em que o arquiteto escolheu o NHibernate em vez da EF. Eu gostaria que a escolha tivesse acontecido de outra maneira, já que um requisito de editor-assinante estava presente desde o início.
Se você planeja usar a estrutura de sincronização , vá com o EF, pois o NHibernate não pode lidar com as atualizações (nas colunas que especificam de onde os dados vieram, quem os alterou e a minha cópia é a mais recente) que acontecem nos bastidores.
Se você precisar replicar dados de um banco de dados para outro (e manter as chaves primárias iguais), a
session.Replicate
função está mal documentada e parece demorar mais do que uma cópia direta.fonte