Usando el patrón Repository, ¿es apropiado devolver un IQueryable de un conjunto de datos (tabla), para uso genérico?
Es muy útil en muchos casos, especialmente cuando se usan bibliotecas externas que aprovechan esa interfaz, por ejemplo, algunos complementos que ordenan / filtran y se unen a elementos ui.
Sin embargo, exponer un IQueryable a veces parece dejar el diseño propenso a errores. Esto, junto con un uso incorrecto de la carga diferida podría provocar graves problemas de rendimiento.
Por otro lado, tener métodos de acceso para cada uso parece redundante y también requiere mucho trabajo (considerando pruebas unitarias, etc.).
new DbContext()
cuando lo necesitan y llaman SaveChanges()
cuando quieren. No es posible probar nada y solo puedo pensar en una capa adicional que lo oculta.