private function MapUnitOfWorkToTransaction(Object\UnitOfWork $UnitOfWork, Relational\Transaction $Transaction)
{
foreach ($UnitOfWork->GetPersistenceDataGroups() as $EntityType => $PersistenceDataGroup) {
$this->MapPersistenceDataToTransaction($UnitOfWork, $Transaction, $PersistenceDataGroup);
}
foreach ($UnitOfWork->GetExecutedProcedures() as $Procedure) {
$Transaction->Execute($this->MapProcedure($Procedure));
}
foreach ($UnitOfWork->GetDiscardenceDataGroups() as $EntityType => $DiscardedIdentityGroup) {
$EntityRelationalMap = $this->EntityRelationMaps[$EntityType];
$ResultRows = $this->MapEntityDataToTransaction($UnitOfWork, $Transaction, $EntityRelationalMap, $DiscardedIdentityGroup);
foreach ($ResultRows as $ResultRow) {
$Transaction->DiscardAll($ResultRow->GetPrimaryKeys());
}
}
foreach ($UnitOfWork->GetDiscardedCriteria() as $DiscardedCriterion) {
$Transaction->DiscardWhere($this->MapObjectCriterion($DiscardedCriterion));
}
}