protected void Save(IDataObject obj)
        {
            if (DeleteStack.IsResolved(obj))
            {
                return;
            }

            dynamic db = ApplicationSettings.Container.Resolve <IEntityDataProvider>().GetDataProviderForEntity(obj) as IDataProvider2;

            if (db != null)
            {
                // Save a flat clone to ensure no relations explored during the save
                db.Save(obj.Clone(recursive: false), new DataProviderSaveSettings {
                    DeepDataMapping = false, Transaction = this.Transaction, SkipSecurity = true
                });
                NeedResync = true;
            }
        }