Skip to content

Instantly share code, notes, and snippets.

@mizrael
Last active September 3, 2019 09:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mizrael/4718a854aeac21273ad2a4969478626e to your computer and use it in GitHub Desktop.
Save mizrael/4718a854aeac21273ad2a4969478626e to your computer and use it in GitHub Desktop.
an example of NOT to use a transaction with EF Core
using (var tran = await _dbContext.BeginTransactionAsync())
{
try
{
var modelsToRemove = await _dbContext.QueryModels
.Where(f => /* some filter here */)
.ToArrayAsync();
if (modelsToRemove.Any())
_dbContext.QueryModels.RemoveRange(modelsToRemove);
if (newModels?.Any())
_dbContext.QueryModels.AddRange(newModels);
await _dbContext.SaveChangesAsync();
tran.Commit();
}
catch (Exception ex)
{
tran.Rollback();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment