Simple Data Access Layer
I've never seen GetList() method on SqlConnection so I'm assuming this is your own class?

If that were the case would it not be best to have IDataContext abstract the Connection details away and return an IConnection contract.

public interface IDatabaseContext : IDisposable
{
    IConnection Connection { get; }
}


Doing this you can ensure your calling classes are completely decoupled from the implementation details of a connection.  Otherwise any implementation of IDataContext would have been coupled to a SQLConnection and you lose the benefit of the initial abstraction.