private void EnableTransparentPersistenceFor(IInternalObjectContainer container) { ITransparentActivationDepthProvider provider = (ITransparentActivationDepthProvider )ActivationProvider(container); provider.EnableTransparentPersistenceSupportFor(container, _rollbackStrategy); }
public virtual void ActivateOn(Db4objects.Db4o.Internal.Transaction transaction, ActivationPurpose purpose) { if (Activating()) { return; } try { Activating(true); ObjectContainerBase container = transaction.Container(); if (!(container.ActivationDepthProvider() is ITransparentActivationDepthProvider)) { return; } ITransparentActivationDepthProvider provider = (ITransparentActivationDepthProvider )container.ActivationDepthProvider(); if (ActivationPurpose.Write == purpose) { lock (container.Lock()) { provider.AddModified(GetObject(), transaction); } } if (IsActive()) { return; } lock (container.Lock()) { Activate(transaction, GetObject(), new DescendingActivationDepth(provider, ActivationMode .Activate)); } } finally { Activating(false); } }