Você não pode obtê-lo sem chamar
SaveChanges() . Pense nisso. O ID vem do banco de dados. SaveChanges() é a primeira coisa que causa a comunicação com o DB. Se você quiser desfazer, você tem várias opções:
- Em muitos casos, você não precisa saber o ID do lado do cliente ao inserir. Basta criar o relacionamento.
- Use um ID gerável pelo cliente, como um GUID.
- Usar
TransactionScopepara uma transação de banco de dados "real". - Faça um desfazer (
DeleteObject) em vez de uma reversão.