Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Arquitetura do banco

Estive analisando que a control ler, ela recebe o contexto por meio de Injeção, beleza. Más esta arquitetura, trata cada requisição ao servidor com uma transação distinta? não poderia ficar lixo de um transação anterior?

3 respostas

Oi Everton, tudo bem?

Da maneira que está, todas as consultas (leituras) são feitas ao banco de dados com o nível de isolamento padrão do SQL Server, que é READ COMMITTED, isto é, apenas os dados "confirmados" ao final de cada transação são lidos. Dados temporários modificados dentro de transações pendentes (isto é, o "lixo") ficam invisíveis às consultas, por causa deste nível de isolamento.

Para mais informações, você pode consultar o documento da Microsoft sobre transações:

https://docs.microsoft.com/pt-br/ef/ef6/saving/transactions

uhummm, debugando percebi que cada requisição possui um contexto, ou seja ele instancia um contexto para cada requisição(ele instancia toda vez os objetos da model.cs). Tendo uma transação para cada requisição?

solução!

Nem sempre. Uma transação só vai ser criada se você estiver fazendo exclusão/modificação/inserção de dados. Se a requisição ao banco é somente uma consulta, nenhuma transação é aberta.