public void Disconnect() { using (Lock()) if (IsConnected && --m_refCount == 0) { m_src.Disconnect(); UnregisterHandlers(); m_mapper.Disconnect(); } }
public void Dispose() { if (!IsDisposed) { lock (m_mapper) { if (m_refCount > 0) { Disconnect(true); } m_mapper.Disconnect(); DatumInserted = DatumReplaced = DatumReplacing = null; DatumDeleted = DatumDeleting = null; IsDisposed = true; DebugHelper.UnregisterProvider(this); } } }