private void SaveChanges_bubbles_presave_exception_implementation(Func<DbContext, int> saveChanges) { EnsureDatabaseInitialized(() => new AdvancedPatternsMasterContext()); using (new TransactionScope()) { using (var context = new AdvancedPatternsMasterContext()) { var emp = new CurrentEmployee { EmployeeId = 4 }; var ord = new WorkOrder { WorkOrderId = 2, EmployeeId = 4 }; context.Employees.Attach(emp); context.WorkOrders.Attach(ord); // Create a conceptual null GetObjectContext(context).ObjectStateManager.ChangeObjectState(emp, EntityState.Deleted); Assert.Throws<InvalidOperationException>(() => context.SaveChanges()).ValidateMessage( "ObjectContext_CommitWithConceptualNull"); } } }