Exemplo n.º 1
0
        private static void CommitNewPhase1(SqlDatabaseContext sqlDatabaseContext, HashSet <DatabaseTransactionContextAcquisition> acquisitions, IObjectsByIdCache cache, TransactionContext transactionContext, Dictionary <TypeAndTransactionalCommandsContext, InsertResults> insertResultsByType, Dictionary <TypeAndTransactionalCommandsContext, IReadOnlyList <DataAccessObject> > fixups)
        {
            var acquisition = transactionContext.AcquirePersistenceTransactionContext(sqlDatabaseContext);

            acquisitions.Add(acquisition);

            var persistenceTransactionContext = acquisition.SqlDatabaseCommandsContext;

            foreach (var j in cache.GetNewObjects())
            {
                var key = new TypeAndTransactionalCommandsContext(j.Key, persistenceTransactionContext);

                var currentInsertResults = persistenceTransactionContext.Insert(j.Key, j.Value.Values);

                if (currentInsertResults.ToRetry.Count > 0)
                {
                    insertResultsByType[key] = currentInsertResults;
                }

                if (currentInsertResults.ToFixUp.Count > 0)
                {
                    fixups[key] = currentInsertResults.ToFixUp;
                }
            }
        }
        private static void CommitUpdated(SqlDatabaseContext sqlDatabaseContext, IObjectsByIdCache cache, HashSet <DatabaseTransactionContextAcquisition> acquisitions, TransactionContext transactionContext)
        {
            var acquisition = transactionContext.AcquirePersistenceTransactionContext(sqlDatabaseContext);

            acquisitions.Add(acquisition);
            acquisition.SqlDatabaseCommandsContext.Update(cache.Type, cache.GetObjectsById());
            acquisition.SqlDatabaseCommandsContext.Update(cache.Type, cache.GetObjectsByPredicate());
        }
Exemplo n.º 3
0
        private static void CommitUpdated <T>(SqlDatabaseContext sqlDatabaseContext, ObjectsByIdCache <T> cache, HashSet <DatabaseTransactionContextAcquisition> acquisitions, TransactionContext transactionContext)
        {
            var acquisition = transactionContext.AcquirePersistenceTransactionContext(sqlDatabaseContext);

            acquisitions.Add(acquisition);

            foreach (var j in cache.objectsByIdCache)
            {
                acquisition.SqlDatabaseCommandsContext.Update(j.Key, j.Value.Values);
            }

            if (cache.objectsByIdCacheComposite != null)
            {
                foreach (var j in cache.objectsByIdCacheComposite)
                {
                    acquisition.SqlDatabaseCommandsContext.Update(j.Key, j.Value.Values);
                }
            }
        }