Creo que lleva más tiempo aprender NHibernate.
EF proporciona diseñador gráfico, lamentablemente NHibernate no tiene un diseñador genérico. Por cierto, no es un problema. Si diseña en forma controlada por el dominio (DDD), primero diseñará sus entidades y no le importa la estructura de la base de datos (como solía hacerlo), NHibernate se encargará de eso por usted.
EF 4 se acercó a NHibernate. No comenzaría a trabajar con EF 3.5, carece de muchas funciones.
Si piensa que NHibernate es demasiado complicado a primera vista, puede comenzar con los marcos construidos sobre NHibernate. ActiveRecords y Sharp Architect son buenos ejemplos.
AFAIR EF 3.5 solo compatible con SQL Server 2000. No podría manejar los nuevos tipos de datos de SQL Server 2005. No tengo información sobre EF 4, pero supongo que admite estas mejoras.
Si utiliza NHibernate en aplicaciones de Word real, tiene que construir una infraestructura. P.ej. Implementé Unidad de trabajo y repositorio patrones para poder escribir pruebas y crear capas en mi aplicación. Tienes que esperar lo mismo usando EF. Separar y adjuntar entidades en EF 3.5 no fue algo fácil, tuve que escribir métodos de extensión complicados para marcar campos sucios y demás. Espero que lo resolvieron en EF 4. No hay tal problema con NHibernate.
No tiene que escribir consultas HQL en NHibernate, puede usar el proveedor LINQ. Creo que es muy importante. :)
en general NHibernate es un producto maduro con buena comunidad y soporte comercial. EF es joven pero tiene un fuerte respaldo de Microsoft. Ah, y EF es solo algo de Microsoft, mientras que también puedes transferir tu conocimiento de NHibernate a Java. Esto cuenta para ti.
.NET 3.5 o .NET 4.0? Le recomendaría que se mantenga alejado de EF 1.0/3.5. –