/// <summary>
            /// Test objects for equality.
            /// </summary>
            /// <param name="obj">Object to compare this object with.</param>
            /// <returns>
            /// True if this object and the specified object are equal,
            /// false otherwise.
            /// </returns>
            public override bool Equals(object obj)
            {
                if (ReferenceEquals(this, obj))
                {
                    return(true);
                }

                ExternalAttributeKey that = obj as ExternalAttributeKey;

                if (obj == null)
                {
                    return(false);
                }

                return(Equals(that.m_sessionKey, m_sessionKey) &&
                       Equals(that.m_attributeName, m_attributeName));
            }
            /// <summary>
            /// Load external attribute value.
            /// </summary>
            protected virtual void LoadExternalAttributeValue()
            {
                ExternalAttributeKey key = new ExternalAttributeKey(m_parent.SessionId, Name);

                m_binValue = (Binary)ModelManager.ExternalAttributeCache[key];
            }