using System.Linq;
namespace <%= solutionName %>.Dominio.Repositorios
{
/// Interface padrão para repositórios do sistema. Possui métodos para CRUD com o tipo informado.
/// O tipo específico do repositório.
public interface IRepositorio where TEntidade : class
{
/// Acrescenta um objeto ao repositório.
/// O objeto a ser acrescentado ao repositório.
void Acrescentar(TEntidade objeto);
/// Edita um objeto existente no repositório com base em sua ID.
/// O objeto que será usado como base para editar o objeto existente.
void Editar(TEntidade objeto);
/// Exclui um objeto existente no repositorio
/// O objeto a ser excluído
void Excluir(TEntidade objeto);
/// Lista todos os objetos do repositorio
/// IEnumerable contendo todos os objetos do repositorio
IQueryable ListarTodos();
/// Lista todos os objetos do repositorio sem manter informações de mudança.
/// IEnumerable contendo todos os objetos do repositorio
IQueryable ListarTodosSomenteLeitura();
/// Efetiva as mudanças realizadas na fonte
void SaveChanges();
}
}