Entity Framework 6 Transaction

using (var dbContextTransaction = dbContext.Database.BeginTransaction())
{
try
{
var job = new Job{Name = "Name"}
dbContext.Jobs.Add(job);
dbContext.SaveChanges();

var companyJobs = new CompanyJob{Name="Name",JobId = Job.Id};
dbContext.CompanyJobs.Add(companyJobs);
dbContext.SaveChanges();
dbContextTransaction.Commit();
}
catch (Exception)
{
dbContextTransaction.Rollback();
}
}

Another method is using scope, pass TransactionScopeAsyncFlowOption.Enabled to TransactionScope() constructor to allow async saving method

using (var transactionScope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
{
var job = new Job{Name = "Name"}
dbContext.Jobs.Add(job);
dbContext.SaveChangesAsync();

var category = dbContext.Categories.Find(2);
job.Categories.Add(category);
dbContext.SaveChangesAsync();

transactionScope.Complete();
}

More ways here
https://msdn.microsoft.com/en-us/library/dn456843(v=vs.113).aspx