/// <summary>
        ///     Creates a new <see cref="TrainProdXrefRecord" /> object instance that is a shallow-copy of the current object instance.
        /// </summary>
        /// <returns>
        ///     The shallow-copy of the current <see cref="TrainProdXrefRecord" /> object instance.
        /// </returns>
        public TrainProdXrefRecord Clone()
        {
            TrainProdXrefRecord record = new TrainProdXrefRecord();

            record.Id        = this.Id;
            record.AddBy     = this.AddBy;
            record.AddDate   = this.AddDate;
            record.ModBy     = this.ModBy;
            record.ModDate   = this.ModDate;
            record.RcvFrom   = this.RcvFrom;
            record.RcvDate   = this.RcvDate;
            record.TrainId   = this.TrainId;
            record.LocId     = this.LocId;
            record.ProdId    = this.ProdId;
            record.StartDate = this.StartDate;
            record.EndDate   = this.EndDate;
            record.Status    = this.Status;
            record.Grade     = this.Grade;
            record.Notes     = this.Notes;
            record.Cost      = this.Cost;
            record.Userchar1 = this.Userchar1;
            record.Userchar2 = this.Userchar2;
            record.Userchar3 = this.Userchar3;
            record.Userchar4 = this.Userchar4;
            record.Userchar5 = this.Userchar5;
            record.Userchar6 = this.Userchar6;
            record.Userint1  = this.Userint1;
            record.Userint2  = this.Userint2;
            record.Userint3  = this.Userint3;
            record.Userint4  = this.Userint4;
            record.Userint5  = this.Userint5;
            record.Userint6  = this.Userint6;
            record.Usernum1  = this.Usernum1;
            record.Usernum2  = this.Usernum2;
            record.Usernum3  = this.Usernum3;
            record.Usernum4  = this.Usernum4;
            record.Usernum5  = this.Usernum5;
            record.Usernum6  = this.Usernum6;
            record.Userdate1 = this.Userdate1;
            record.Userdate2 = this.Userdate2;
            record.Userdate3 = this.Userdate3;
            record.Userdate4 = this.Userdate4;
            record.Userdate5 = this.Userdate5;
            record.Userdate6 = this.Userdate6;
            return(record);
        }
        /// <summary>
        ///     Indicates whether the current <see cref="TrainProdXrefRecord" /> instance is equal to another <see cref="TrainProdXrefRecord" /> instance.
        /// </summary>
        /// <param name="that">
        ///     The <see cref="TrainProdXrefRecord" /> instance to be compared against this instance.
        /// </param>
        /// <returns>
        ///     True if both instances are considered equal; otherwise, false.
        /// </returns>
        public Boolean Equals(TrainProdXrefRecord that)
        {
            Boolean result = true;

            result = result && (this.Id.TrimOrNullify() == that.Id.TrimOrNullify());
            result = result && (this.TrainId.TrimOrNullify() == that.TrainId.TrimOrNullify());
            result = result && (this.LocId.TrimOrNullify() == that.LocId.TrimOrNullify());
            result = result && (this.ProdId.TrimOrNullify() == that.ProdId.TrimOrNullify());
            result = result && (this.StartDate == that.StartDate);
            result = result && (this.EndDate == that.EndDate);
            result = result && (this.Status.TrimOrNullify() == that.Status.TrimOrNullify());
            result = result && (this.Grade.TrimOrNullify() == that.Grade.TrimOrNullify());
            result = result && (this.Notes.TrimOrNullify() == that.Notes.TrimOrNullify());
            result = result && (this.Cost == that.Cost);
            result = result && (this.Userchar1.TrimOrNullify() == that.Userchar1.TrimOrNullify());
            result = result && (this.Userchar2.TrimOrNullify() == that.Userchar2.TrimOrNullify());
            result = result && (this.Userchar3.TrimOrNullify() == that.Userchar3.TrimOrNullify());
            result = result && (this.Userchar4.TrimOrNullify() == that.Userchar4.TrimOrNullify());
            result = result && (this.Userchar5.TrimOrNullify() == that.Userchar5.TrimOrNullify());
            result = result && (this.Userchar6.TrimOrNullify() == that.Userchar6.TrimOrNullify());
            result = result && (this.Userint1 == that.Userint1);
            result = result && (this.Userint2 == that.Userint2);
            result = result && (this.Userint3 == that.Userint3);
            result = result && (this.Userint4 == that.Userint4);
            result = result && (this.Userint5 == that.Userint5);
            result = result && (this.Userint6 == that.Userint6);
            result = result && (this.Usernum1 == that.Usernum1);
            result = result && (this.Usernum2 == that.Usernum2);
            result = result && (this.Usernum3 == that.Usernum3);
            result = result && (this.Usernum4 == that.Usernum4);
            result = result && (this.Usernum5 == that.Usernum5);
            result = result && (this.Usernum6 == that.Usernum6);
            result = result && (this.Userdate1 == that.Userdate1);
            result = result && (this.Userdate2 == that.Userdate2);
            result = result && (this.Userdate3 == that.Userdate3);
            result = result && (this.Userdate4 == that.Userdate4);
            result = result && (this.Userdate5 == that.Userdate5);
            result = result && (this.Userdate6 == that.Userdate6);
            return(result);
        }