¿Qué ORM para .net debo usar?

Soy relativamente nuevo en .NET y llevo casi un año usando Linq2Sql, pero carece de algunas de las funciones que estoy buscando ahora.

Voy a comenzar un nuevo proyecto en el que quiero usar un ORM con las siguientes características:

Tiene que ser muy productivo, no quiero tratar con la capa de acceso para guardar o recuperar objetos desde o hacia la base de datos, pero me permite modificar fácilmente cualquier objeto antes de enviarlo a la base de datos; También debería permitirme trabajar fácilmente con un esquema de base de datos cambiante.Debería permitirme extender los objetos asignados desde la base de datos, por ejemplo, para agregarles atributos virtuales (columnas virtuales a una tabla)Tiene que ser (al menos casi) independiente de la base de datos, debería permitirme trabajar con diferentes bases de datos de manera transparente.No debe tener tanta configuración o debe basarse en convenciones para que funcione.Debería permitirme trabajar con Linq.

Entonces, ¿conoces algún ORM que pueda usar? Gracias por tu ayuda.

EDITAR Sé que una opción es usar NHibernate. Esto aparece como el estándar de facto para aplicaciones de nivel empresarial, pero también parece que no es muy productivo debido a su profunda curva de aprendizaje. De otra manera, he leído en alguna otra publicación aquí en TAN que no se integra bien con Linq. ¿Es todo eso cierto?

Respuestas a la pregunta(9)

Su respuesta a la pregunta