Last time I rambled a little bit about TDD and how to implement a very simple MongoDB repository.
This time I want to introduce you to my cool friend, DbContext. The basic idea is to have an interface exposing all the collection on your db, or, in our case, all the repositories. Take a look at this:
( I will leave to you the definition of the entities ). The implementation is pretty straightforward:
A couple of details worth noting here:
1) the repositories are exposed as interfaces and not as specific implementation, making tests easier to write
2) again, all the repositories are generated via a factory, injected directly in the ctor.
The Factory Pattern allows us to add more repositories without much hassle and, moreover, to inject a “fake” factory during our tests.
Next time we’ll discuss about how to implement a factory for our repo-needs 🙂