protected override void EnsureEditable()
{
if (_owner == Thread.CurrentThread)
return;
if (_owner != null)
throw new InvalidOperationException("Transient used by non-owner thread");
throw new InvalidOperationException("Transient used after persistent! call");
}