public void ReadAndWriteRootEntity()
        {
            var connection = TestConfiguration.GetConnection();
            var context    = new MongoDbContext(connection);
            var dbSet      = new MongoDbSet <RootKnownBaseModel>(context);

            var rootEntity = new RootKnownBaseModel
            {
                Description = "ReadAndWriteRootEntity-RootKnownBaseModel"
            };

            dbSet.Add(rootEntity);

            var childEntity = new UnknownChildToRootModel
            {
                Description = "ReadAndWriteRootEntity-UnknownChildToRootModel"
            };

            dbSet.Add(childEntity);

            context.SaveChanges();

            ResetMongoDb();
            dbSet = new MongoDbSet <RootKnownBaseModel>(context);

            var dbRootEntity = dbSet.Where(e => e.Id == rootEntity.Id).FirstOrDefault();

            Assert.IsNotNull(dbRootEntity);
            Assert.IsInstanceOfType(dbRootEntity, typeof(RootKnownBaseModel));

            var dbChildEntity = dbSet.Where(e => e.Id == childEntity.Id).FirstOrDefault();

            Assert.IsNotNull(dbChildEntity);
            Assert.IsInstanceOfType(dbChildEntity, typeof(UnknownChildToRootModel));
        }
        public void ReadAndWriteRootEntity()
        {
            var database = TestConfiguration.GetDatabase();
            var dbSet    = new MongoDbSet <RootKnownBaseModel>();

            dbSet.SetDatabase(database);

            var rootEntity = new RootKnownBaseModel
            {
                Description = "ReadAndWriteRootEntity-RootKnownBaseModel"
            };

            dbSet.Add(rootEntity);

            var childEntity = new UnknownChildToRootModel
            {
                Description = "ReadAndWriteRootEntity-UnknownChildToRootModel"
            };

            dbSet.Add(childEntity);

            dbSet.SaveChanges();

            ResetMongoDbDriver();
            dbSet = new MongoDbSet <RootKnownBaseModel>();
            dbSet.SetDatabase(database);

            var dbRootEntity = dbSet.Where(e => e.Id == rootEntity.Id).FirstOrDefault();

            Assert.IsNotNull(dbRootEntity);
            Assert.AreEqual(typeof(RootKnownBaseModel), dbRootEntity.GetType());

            var dbChildEntity = dbSet.Where(e => e.Id == childEntity.Id).FirstOrDefault();

            Assert.IsNotNull(dbChildEntity);
            Assert.AreEqual(typeof(UnknownChildToRootModel), dbChildEntity.GetType());
        }