public override int GetHashCode() { unchecked { var hashCode = Id != null ? Id.GetHashCode() : 0; hashCode = (hashCode * 397) ^ (Title != null ? Title.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (Name != null ? Name.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (int)Type; hashCode = (hashCode * 397) ^ (Category != null ? Category.GetHashCode() : 0); hashCode = (hashCode * 397) ^ Pathable.GetHashCode(); hashCode = (hashCode * 397) ^ (Parent != null ? Parent.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (ExtraTitleInfo != null ? ExtraTitleInfo.GetHashCode() : 0); hashCode = (hashCode * 397) ^ Segmentable.GetHashCode(); hashCode = (hashCode * 397) ^ (Description != null ? Description.GetHashCode() : 0); hashCode = (hashCode * 397) ^ AllowedForReporting.GetHashCode(); return hashCode; } }