Конечно, можно даже в принципе не знать что будет на физическом уровне. Хоть MongoDB, хоть бинарный файл.
public interface IRepository<T>
where T: IEntity
{
T Get(Guid Id);
void Post(T entity);
void Remove(Guid id);
}
public class EFRepository<T>: IRepository<T>
where T: IEntity
{
/*Логика для EF*/
}