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");
                }
            }
        }