Creo que si tiene sus repositorios use un ORM que ya está lo suficientemente abstraído de la base de datos.
Sin embargo, donde estoy trabajando ahora, alguien cree que deberíamos tener una capa que abstraiga el ORM en caso de que nos gustaría cambiar el ORM más adelante.
¿Es realmente necesario o es simplemente una gran cantidad de gastos generales para crear una capa que funcione en muchos ORM?
Editar
Solo para dar más detalles:
- Tenemos clase POCO y clase de entidad que están mapeadas con AutoMapper. La capa de repositorio utiliza la clase de entidad. La capa de repositorio luego usa la capa adicional de abstracción para comunicarse con Entity Framework.
- La capa empresarial no tiene acceso directo a Entity Framework. Incluso sin la capa adicional de abstracción sobre el ORM, esta necesita usar la capa de servicio que usa la capa de repositorio. En ambos casos, la capa empresarial está totalmente separada del ORM.
- El argumento principal es poder cambiar ORM en el futuro. Dado que está realmente localizado dentro de la capa del Repositorio, para mí, ya está bien separado y no veo por qué se requiere una capa adicional de abstracción para tener un código de "calidad".