Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
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