C# Generic Repository for use with Entity Framework, RavenDB and more with built-in caching options.