This morning I was updating some Data Models in a project, and noticed, based on my project scheme, that I would have to add a derived BaseRepository class. This is a side-effect of the way I’ve used Ninject for a long time and every IRepository<T> is specified to be a BaseRepository<T>. That pattern is a little annoying, and in some ways, is counter-intuitive when dealing with DI and generics.