En los últimos 2 años desde que comencé a escribir aplicaciones comerciales (antes hacía programación de front end de alto nivel o sistemas de muy bajo nivel), aprendí conjuntos de datos, linq a sql, y ahora framework de entidad. Lo lógico a considerar a continuación parece ser NHibernate.
Las razones por las que finalmente terminé en EF son: (1) tiene el mejor soporte de diseñador y (2) es el más compatible con Microsoft.
Las razones (estas tienen elementos de suposición) Estoy interesado en NHibernate son: (1) puede que no sea reemplazado por algo totalmente diferente tan rápido como MS bate las tecnologías de acceso a datos (2) Parece que es el primero o segundo herramienta de ejecución frontal para lo que hace y (3) Parece ser bastante estable y rastreable en el tiempo bastante.
¿Alguien ha publicado una comparación de los dos? ¿Es uno mejor que el otro para ciertos tipos de arquitecturas? ¿O es solo una cuestión de estilo y preferencia?
fuente
Estamos haciendo un proyecto donde el arquitecto eligió NHibernate sobre EF. Desearía que la elección hubiera sido contraria ya que el requisito de editor-suscriptor estuvo presente desde el principio.
Si planea usar el marco de sincronización , vaya con EF, ya que NHibernate no puede hacer frente a las actualizaciones (a las columnas que especifican de dónde provienen los datos, quién los modificó y mi copia es la última) que ocurren detrás de escena.
Si necesita replicar datos de una base de datos a otra (y mantener las claves primarias iguales), la
session.Replicate
función está mal documentada y parece tomar más tiempo que una copia directa.fuente