Releases: Codout/Codout.Framework
Release list
Codout.Framework.EF 6.3.0
Fixed
EFRepository.SaveOrUpdate / SaveOrUpdateAsync decidiam insert vs. update via IEntity.IsTransient(), o que quebrava qualquer entidade que pré-atribuísse o Id no construtor (ex.: Id = Guid.NewGuid()). A entidade era marcada como Modified e o SaveChanges falhava ao tentar UPDATE em uma linha inexistente. Agora a decisão é feita inspecionando Context.Entry(entity).State e, para entidades Detached com chave atribuída, consultando o banco via Find / FindAsync.
SaveOrUpdateAsync deixou de bloquear a thread chamando Find síncrono; agora usa FindAsync e respeita o CancellationToken recebido.
Quando o SaveOrUpdate precisa atualizar uma entidade existente, os valores são copiados via Entry(existing).CurrentValues.SetValues(entity), preservando os OriginalValues (e portanto tokens de concorrência como [Timestamp]/RowVersion) trazidos do banco.
Changed
SaveOrUpdate em entidade já rastreada com estado Unchanged não força mais a transição para Modified. Confia no change tracker para detectar mutações. Consumidores que dependiam do "force full update" devem chamar Update(entity) explicitamente.
SaveOrUpdate em entidade Detached com chave não-default agora executa um roundtrip ao banco (Find / FindAsync) para distinguir insert de update. Em hot paths onde a intenção é conhecida, prefira Save(entity) ou Update(entity) para evitar a query.
v4.0.0
What's Changed
- Include GetMimeType and Tests. by @Caio-Sousa-zz in #1
- melhorias Zenvia by @Lucastibr in #2
- Adicionado SVG em MimeType Extensions by @Lucastibr in #3
New Contributors
- @Caio-Sousa-zz made their first contribution in #1
- @Lucastibr made their first contribution in #2
Full Changelog: https://github.com/Codout/Codout.Framework/commits/v4.0.0