No curso de Asp.net e Financas usamos o Entity para persistencia de dados. Criamos vários classes repetidas DAO que faziam a mesma coisa só mudava o DBSet que vinha da classe Context e o objeto.
Exemplo de uns dos métodos.
public void Adiciona(Movimentacao movimentacao){
contexto.Movimentacoes.Add(movimentacao);
contexto.SaveChanges();
}
O que muda é somente o contexto Movimentacoes, tentei criar uma classe abstrata DAO onde eu recebia um Objeto e persistia, mas parei na parte do DBSet que cada classe tem a sua, então teria que dar um jeito de passar esse DBSet se eu quiser ter o método com implementação padrão na classe abstrata.
Queria saber se isso é possível e como esse problema de repetição de código é resolvido em projetos em produção.