Usando o padrão Repository, é adequado retornar um IQueryable de um conjunto de dados (tabela) para uso genérico?
É muito útil em muitos casos, especialmente ao usar bibliotecas externas que utilizam essa interface, por exemplo, alguns plugins que classificam / filtram e se ligam a elementos da interface do usuário.
No entanto, expor um IQueryable às vezes parece deixar o design propenso a erros. Isso, associado a um uso incorreto de carregamento lento, pode levar a graves ocorrências de desempenho.
Por outro lado, ter métodos de acesso para cada uso parece redundante e também muito trabalhoso (considerando testes de unidade, etc.).
new DbContext()
sempre que precisam e ligam SaveChanges()
quando querem. Não é possível testar nada e a única coisa que consigo pensar é em uma camada adicional ocultando-a.