In your implementation you do this:
public void Add<T>(T entity) where T : DbSet
{ … }
While your interface specifies this:
void Add<T>(T entity);
So, essentially, you need to make the constraints (the where
part) identical for both sides. In your case, as you need the DbSet
constaint for the implementation, you should add it to the interface:
void Add<T>(T entity) where T : DbSet;