The NHibernate session may follow the repository pattern, but if you create your own controllers to communicate directly with it, you are not really abstracting it. Mocking this when you are not abstracting is not a reliable solution.
If you absolutely do not want to abstract it (this is pure laziness, IMO), then sqllite db, which Jason mentioned, is a good call. However, for a large project, appropriately sharing your concerns is a very good idea.
My domain model contains interfaces for both data access objects (REPOs) and services that consume them. This allows me to truly separate my data from my business tasks, which should be completely separate from the problems associated with the presentation / application. This allows you to properly test the device and the ability to easily replace parts or make the right mockery.
Each layer ONLY speaks with interfaces, NEVER to implement. In addition, my application layer never speaks directly to the data layer - only services. Believing this to happen, they seem to encourage developers to become lazy and begin to introduce business or data logic into the application.
Chad ruppert
source share