/// <summary>
///     Returns true if self and the provided entity have the same Id values
///     and the Ids are not of the default Id value
/// </summary>
        protected bool HasSameNonDefaultIdAs(TblZslNormalisationSuggestion compareTo)
        {
            return(!this.IsTransient() && !compareTo.IsTransient() && this.SuggestionsId.Equals(compareTo.SuggestionsId));
        }
/// <summary>
/// Copies the current object to a new instance
/// </summary>
/// <param name="deep">Copy members that refer to objects external to this class (not dependent)</param>
/// <param name="copiedObjects">Objects that should be reused</param>
/// <param name="asNew">Copy the current object as a new one, ready to be persisted, along all its members.</param>
/// <param name="reuseNestedObjects">If asNew is true, this flag if set, forces the reuse of all external objects.</param>
/// <param name="copy">Optional - An existing [TblZslNormalisationSuggestion] instance to use as the destination.</param>
/// <returns>A copy of the object</returns>
        public virtual TblZslNormalisationSuggestion Copy(bool deep = false, Hashtable copiedObjects = null, bool asNew = false, bool reuseNestedObjects = false, TblZslNormalisationSuggestion copy = null)
        {
            if (copiedObjects == null)
            {
                copiedObjects = new Hashtable();
            }
            if (copy == null && copiedObjects.Contains(this))
            {
                return((TblZslNormalisationSuggestion)copiedObjects[this]);
            }
            copy = copy ?? new TblZslNormalisationSuggestion();
            if (!asNew)
            {
                copy.TransientId   = this.TransientId;
                copy.SuggestionsId = this.SuggestionsId;
            }
            copy.Customer_Name            = this.Customer_Name;
            copy.Sender_Name              = this.Sender_Name;
            copy.Sender_Address           = this.Sender_Address;
            copy.Existing_Sender_City     = this.Existing_Sender_City;
            copy.Normalised_Sender_City   = this.Normalised_Sender_City;
            copy.Sender_Country           = this.Sender_Country;
            copy.Sender_Zipcode           = this.Sender_Zipcode;
            copy.Receiver_Name            = this.Receiver_Name;
            copy.Receiver_Address         = this.Receiver_Address;
            copy.Existing_Receiver_City   = this.Existing_Receiver_City;
            copy.Normalised_Receiver_City = this.Normalised_Receiver_City;
            copy.Existing_Pallet_Name     = this.Existing_Pallet_Name;
            copy.Normalised_Pallet_Name   = this.Normalised_Pallet_Name;
            copy.Receiver_Zipcode         = this.Receiver_Zipcode;
            copy.Receiver_Country         = this.Receiver_Country;
            copy.Carrier           = this.Carrier;
            copy.Order_Number      = this.Order_Number;
            copy.Shipment_Date     = this.Shipment_Date;
            copy.Weight            = this.Weight;
            copy.Volume            = this.Volume;
            copy.Cost              = this.Cost;
            copy.Currency          = this.Currency;
            copy.Number_Of_Pallets = this.Number_Of_Pallets;
            copy.Suggestion_Date   = this.Suggestion_Date;
            copy.Approved          = this.Approved;
            copy.ApprovedBy        = this.ApprovedBy;
            copy.ApprovedDate      = this.ApprovedDate;
            copy.Owner             = this.Owner;
            if (!copiedObjects.Contains(this))
            {
                copiedObjects.Add(this, copy);
            }
            return(copy);
        }