I implemented .NET Core, .NET Standard and .NET 4.5
I implemented the async pattern for all interfaces
I removed some ObjectId methods since they defeated the purpose of TKey
I removed the manager code from the repository tests and added a separate set of tests for this class
I created an InMemoryRepository so that my external project doesn't need to hit the MongoDB during unit tests
Collection names for the most part are randomized (except for the few tests that require a specific name). This was needed since the tests run across 3 different .NETs.
https://github.com/MindMatrix/MongoRepository2
Putting this here in case someone may find it useful, the code was taken from sidecut's https://github.com/sidecut/MongoRepository/tree/v2.4.2 as the base rather than here since it seemed to be the most complete.