public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = (int)AssocDays;
         hashCode = (hashCode * 397) ^ (AssocLocationSuffix != null ? AssocLocationSuffix.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (AssocTrainUid != null ? AssocTrainUid.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (int)AssocType;
         hashCode = (hashCode * 397) ^ (BaseLocationSuffix != null ? BaseLocationSuffix.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (int)Category;
         hashCode = (hashCode * 397) ^ DateFrom.GetHashCode();
         hashCode = (hashCode * 397) ^ (int)DateIndicator;
         hashCode = (hashCode * 397) ^ DateTo.GetHashCode();
         hashCode = (hashCode * 397) ^ (DiagramType != null ? DiagramType.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (Location != null ? Location.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (MainTrainUid != null ? MainTrainUid.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (int)RecordIdentity;
         hashCode = (hashCode * 397) ^ (int)StpIndicator;
         return(hashCode);
     }
 }