Bom pessoal, a gente estava falando sobre Unit of Work e eu falei para vocês que a gente tem que criar mapeamentos, ou seja, você adiciona esses objetos no Unit of Work para que ele consiga fazer essa persistência dos dados no banco. Agora, o que é um Identity Map, que é o nosso assunto desse vídeo aqui? O Identity Map garante que cada objeto é carregado apenas uma vez e o mantém em um mapa de controle. Quando a busca pelo objeto, primeiramente, ela é realizada no mapa. O que acontece? Existem diversos padrões que usam o Identity Map. Por quê? Imagina que eu estou utilizando o Data Mapper e eu faço uma consulta dos dados no banco e eu recebi esses dados num objeto, tá? Agora, o que que acontece? Imagina que eu preciso novamente, utilizando o Data Mapper, pegar esse mesmo registro. Poxa, eu já tenho esse registro comigo, correto? Então, se eu já tenho esse registro comigo, eu não preciso fazer a busca desse registro no banco de dados novamente. Então, o que ele faz? Ele cria um map, e esse map fala, olha, esse objeto tem esses dados, esse objeto tem esses dados, e você guarda todas as informações. E o que acontece? Todas as vezes que esses objetos são modificados, eu posso também, eventualmente, trabalhar nessas mudanças no Identity Map, tá? Então, é extremamente importante você entender que existe esse padrão, e esse padrão ele pode usar em combinação com o seu Data Mapper, inclusive com o seu Unit of Work, tá? Então, o Identity Map, map, no final do dia, é uma estrutura de dados. Ele carrega as entidades que você precisa na memória, ele garante que o carregamento vai acontecer apenas uma vez, e ele melhora a performance e remove inconsistências. Por que ele remove inconsistências? Porque imagina que eu pego um dado no banco e trago um registro no objeto aí eu chamo de novo tenho dois objetos diferentes representando o mesmo dado no banco e aí o que acontece dá um super bug no nosso sistema né então a identidade ele consegue fazer essa camada de abstração para que você consiga ter acesso somente uma vez aos dados desses registros. Ponto importante, o Identimap mantém o controle dos objetos que foram criados, modificados ou marcados para remoção para serem utilizados em conjunto com o Unit of Work. Então, a gente falou do Unit of Work? Sim. Mas lembra que eu falei que a gente tem que adicionar os objetos para que a gente consiga dar o commit no Unit of Work? Então, esses objetos, eles são armazenados em uma estrutura de dados. E essa estrutura de dados é o nosso Identity Map na maioria das vezes. Então, o Map que você tem é um camarada que o Unit of Work vai acessar para conseguir realizar as transações que você vai utilizar. Maravilha? Próximo vídeo, parada obrigatória em Lazy Loading. Então, vamos nessa.