public void SaveChanges() { _container.GetInstance <PlanRepository>().SaveChanges(); try { var mtRep = _container.GetInstance <IMultiTenantObjectRepository>() as MultitenantRepository; if (mtRep != null) { mtRep.SaveChanges(); } } catch { } _context.DetectChanges(); var addedEntities = _context.AddedEntities; var modifiedEntities = _context.ModifiedEntities; var deletedEntities = _context.DeletedEntities; ((AuthorizationTokenRepositoryBase)AuthorizationTokenRepository).SaveChanges(); try { _context.SaveChanges(); } catch (DbEntityValidationException e) { string errorFormat = @"Validation failed for entity [{0}]. Validation errors:" + Environment.NewLine + @"{1}"; var errorList = new List <String>(); foreach (var entityValidationError in e.EntityValidationErrors) { var entityName = entityValidationError.Entry.Entity.GetType().Name; var errors = String.Join(Environment.NewLine, entityValidationError.ValidationErrors.Select(a => a.PropertyName + ": " + a.ErrorMessage)); errorList.Add(String.Format(errorFormat, entityName, errors)); } throw new Exception(String.Join(Environment.NewLine + Environment.NewLine, errorList) + Environment.NewLine, e); } OnEntitiesAdded(new EntitiesStateEventArgs(this, addedEntities)); OnEntitiesModified(new EntitiesStateEventArgs(this, modifiedEntities)); OnEntitiesDeleted(new EntitiesStateEventArgs(this, deletedEntities)); }