Great Article.
Great Article. Andrew. To me the most important reason that you want to have that IRepository interface it to make your class testable (unit tests). Without that you cannot write proper isolated unit tests that test the inside of your classes that are dealing with database.