public static String GetMemberPath(IEnhancementHint hint)
        {
            if (hint == null)
            {
                return(null);
            }
            EmbeddedEnhancementHint unwrap = hint.Unwrap <EmbeddedEnhancementHint>();

            if (unwrap == null)
            {
                return(null);
            }
            return(unwrap.MemberPath);
        }
        public static Type GetParentObjectType(IEnhancementHint hint)
        {
            if (hint == null)
            {
                return(null);
            }
            EmbeddedEnhancementHint unwrap = hint.Unwrap <EmbeddedEnhancementHint>();

            if (unwrap == null)
            {
                return(null);
            }
            return(unwrap.ParentObjectType);
        }
        public static Type GetRootEntityType(IEnhancementHint hint)
        {
            if (hint == null)
            {
                return(null);
            }
            EmbeddedEnhancementHint unwrap = hint.Unwrap <EmbeddedEnhancementHint>();

            if (unwrap == null)
            {
                return(null);
            }
            return(unwrap.RootEntityType);
        }
        public override bool Equals(Object obj)
        {
            if (Object.ReferenceEquals(this, obj))
            {
                return(true);
            }
            if (!(obj is EmbeddedEnhancementHint))
            {
                return(false);
            }
            EmbeddedEnhancementHint other = (EmbeddedEnhancementHint)obj;

            return(ParentObjectType.Equals(other.ParentObjectType) && MemberPath.Equals(other.MemberPath));
        }