public EntityIdentityMapImpl(EntityObjectStore objectStore) {
     ObjectStore = objectStore;
 }
        public override INakedObjectPersistor CreateObjectPersistor() {
            if (!isContextSet) {
                throw new InitialisationException(@"No context set on EntityPersistorInstaller, must call either ""UsingCodeFirstContext"" or ""UsingEdmxContext""");
            }

            IEnumerable<CodeFirstEntityContextConfiguration> cfConfigs = DbContextConstructors.Select(f => new CodeFirstEntityContextConfiguration {DbContext = f.Item1, PreCachedTypes = f.Item2, NotPersistedTypes = NotPersistedTypes});
            IEnumerable<EntityContextConfiguration> config = PocoConfiguration().Union(cfConfigs);
            var oidGenerator = new EntityOidGenerator();
            var objectStore = new EntityObjectStore(config.ToArray(), oidGenerator);
            EntityObjectStore.EnforceProxies = EnforceProxies;
            EntityObjectStore.RequireExplicitAssociationOfTypes = RequireExplicitAssociationOfTypes;
            EntityObjectStore.RollBackOnError = RollBackOnError;
            EntityObjectStore.MaximumCommitCycles = MaximumCommitCycles;
            EntityObjectStore.IsInitializedCheck = IsInitializedCheck;
            return new ObjectStorePersistor {
                ObjectStore = objectStore,
                PersistAlgorithm = new EntityPersistAlgorithm(),
                OidGenerator = oidGenerator,
                IdentityMap = new EntityIdentityMapImpl(objectStore) {IdentityAdapterMap = identityAdapterMap, PocoAdapterMap = pocoAdapterMap}
            };
        }