Inheritance: System.IComparable, System.ICloneable, INotifyPropertyChanged
 ///<summary>
 /// Returns a value indicating whether this instance is equal to a specified object.
 ///</summary>
 ///<param name="toObject">An object to compare to this instance.</param>
 ///<returns>true if toObject is a <see cref="VJobCandidateEmploymentBase"/> and has the same value as this instance; otherwise, false.</returns>
 public virtual bool Equals(VJobCandidateEmploymentBase toObject)
 {
     if (toObject == null)
     {
         return(false);
     }
     return(Equals(this, toObject));
 }
		///<summary>
		/// Determines whether the specified <see cref="VJobCandidateEmploymentBase"/> instances are considered equal.
		///</summary>
		///<param name="Object1">The first <see cref="VJobCandidateEmploymentBase"/> to compare.</param>
		///<param name="Object2">The second <see cref="VJobCandidateEmploymentBase"/> to compare. </param>
		///<returns>true if Object1 is the same instance as Object2 or if both are null references or if objA.Equals(objB) returns true; otherwise, false.</returns>
		public static bool Equals(VJobCandidateEmploymentBase Object1, VJobCandidateEmploymentBase Object2)
		{
			// both are null
			if (Object1 == null && Object2 == null)
				return true;

			// one or the other is null, but not both
			if (Object1 == null ^ Object2 == null)
				return false;

			bool equal = true;
			if (Object1.JobCandidateId != Object2.JobCandidateId)
				equal = false;
			if (Object1.SafeNameEmpStartDate != null && Object2.SafeNameEmpStartDate != null )
			{
				if (Object1.SafeNameEmpStartDate != Object2.SafeNameEmpStartDate)
					equal = false;
			}
			else if (Object1.SafeNameEmpStartDate == null ^ Object1.SafeNameEmpStartDate == null )
			{
				equal = false;
			}
			if (Object1.SafeNameEmpEndDate != null && Object2.SafeNameEmpEndDate != null )
			{
				if (Object1.SafeNameEmpEndDate != Object2.SafeNameEmpEndDate)
					equal = false;
			}
			else if (Object1.SafeNameEmpEndDate == null ^ Object1.SafeNameEmpEndDate == null )
			{
				equal = false;
			}
			if (Object1.SafeNameEmpOrgName != null && Object2.SafeNameEmpOrgName != null )
			{
				if (Object1.SafeNameEmpOrgName != Object2.SafeNameEmpOrgName)
					equal = false;
			}
			else if (Object1.SafeNameEmpOrgName == null ^ Object1.SafeNameEmpOrgName == null )
			{
				equal = false;
			}
			if (Object1.SafeNameEmpJobTitle != null && Object2.SafeNameEmpJobTitle != null )
			{
				if (Object1.SafeNameEmpJobTitle != Object2.SafeNameEmpJobTitle)
					equal = false;
			}
			else if (Object1.SafeNameEmpJobTitle == null ^ Object1.SafeNameEmpJobTitle == null )
			{
				equal = false;
			}
			if (Object1.SafeNameEmpResponsibility != null && Object2.SafeNameEmpResponsibility != null )
			{
				if (Object1.SafeNameEmpResponsibility != Object2.SafeNameEmpResponsibility)
					equal = false;
			}
			else if (Object1.SafeNameEmpResponsibility == null ^ Object1.SafeNameEmpResponsibility == null )
			{
				equal = false;
			}
			if (Object1.SafeNameEmpFunctionCategory != null && Object2.SafeNameEmpFunctionCategory != null )
			{
				if (Object1.SafeNameEmpFunctionCategory != Object2.SafeNameEmpFunctionCategory)
					equal = false;
			}
			else if (Object1.SafeNameEmpFunctionCategory == null ^ Object1.SafeNameEmpFunctionCategory == null )
			{
				equal = false;
			}
			if (Object1.SafeNameEmpIndustryCategory != null && Object2.SafeNameEmpIndustryCategory != null )
			{
				if (Object1.SafeNameEmpIndustryCategory != Object2.SafeNameEmpIndustryCategory)
					equal = false;
			}
			else if (Object1.SafeNameEmpIndustryCategory == null ^ Object1.SafeNameEmpIndustryCategory == null )
			{
				equal = false;
			}
			if (Object1.SafeNameEmpLocCountryRegion != null && Object2.SafeNameEmpLocCountryRegion != null )
			{
				if (Object1.SafeNameEmpLocCountryRegion != Object2.SafeNameEmpLocCountryRegion)
					equal = false;
			}
			else if (Object1.SafeNameEmpLocCountryRegion == null ^ Object1.SafeNameEmpLocCountryRegion == null )
			{
				equal = false;
			}
			if (Object1.SafeNameEmpLocState != null && Object2.SafeNameEmpLocState != null )
			{
				if (Object1.SafeNameEmpLocState != Object2.SafeNameEmpLocState)
					equal = false;
			}
			else if (Object1.SafeNameEmpLocState == null ^ Object1.SafeNameEmpLocState == null )
			{
				equal = false;
			}
			if (Object1.SafeNameEmpLocCity != null && Object2.SafeNameEmpLocCity != null )
			{
				if (Object1.SafeNameEmpLocCity != Object2.SafeNameEmpLocCity)
					equal = false;
			}
			else if (Object1.SafeNameEmpLocCity == null ^ Object1.SafeNameEmpLocCity == null )
			{
				equal = false;
			}
			return equal;
		}
		///<summary>
		/// Returns a value indicating whether this instance is equal to a specified object.
		///</summary>
		///<param name="toObject">An object to compare to this instance.</param>
		///<returns>true if toObject is a <see cref="VJobCandidateEmploymentBase"/> and has the same value as this instance; otherwise, false.</returns>
		public virtual bool Equals(VJobCandidateEmploymentBase toObject)
		{
			if (toObject == null)
				return false;
			return Equals(this, toObject);
		}
        ///<summary>
        /// Determines whether the specified <see cref="VJobCandidateEmploymentBase"/> instances are considered equal.
        ///</summary>
        ///<param name="Object1">The first <see cref="VJobCandidateEmploymentBase"/> to compare.</param>
        ///<param name="Object2">The second <see cref="VJobCandidateEmploymentBase"/> to compare. </param>
        ///<returns>true if Object1 is the same instance as Object2 or if both are null references or if objA.Equals(objB) returns true; otherwise, false.</returns>
        public static bool Equals(VJobCandidateEmploymentBase Object1, VJobCandidateEmploymentBase Object2)
        {
            // both are null
            if (Object1 == null && Object2 == null)
            {
                return(true);
            }

            // one or the other is null, but not both
            if (Object1 == null ^ Object2 == null)
            {
                return(false);
            }

            bool equal = true;

            if (Object1.JobCandidateId != Object2.JobCandidateId)
            {
                equal = false;
            }
            if (Object1.SafeNameEmpStartDate != null && Object2.SafeNameEmpStartDate != null)
            {
                if (Object1.SafeNameEmpStartDate != Object2.SafeNameEmpStartDate)
                {
                    equal = false;
                }
            }
            else if (Object1.SafeNameEmpStartDate == null ^ Object1.SafeNameEmpStartDate == null)
            {
                equal = false;
            }
            if (Object1.SafeNameEmpEndDate != null && Object2.SafeNameEmpEndDate != null)
            {
                if (Object1.SafeNameEmpEndDate != Object2.SafeNameEmpEndDate)
                {
                    equal = false;
                }
            }
            else if (Object1.SafeNameEmpEndDate == null ^ Object1.SafeNameEmpEndDate == null)
            {
                equal = false;
            }
            if (Object1.SafeNameEmpOrgName != null && Object2.SafeNameEmpOrgName != null)
            {
                if (Object1.SafeNameEmpOrgName != Object2.SafeNameEmpOrgName)
                {
                    equal = false;
                }
            }
            else if (Object1.SafeNameEmpOrgName == null ^ Object1.SafeNameEmpOrgName == null)
            {
                equal = false;
            }
            if (Object1.SafeNameEmpJobTitle != null && Object2.SafeNameEmpJobTitle != null)
            {
                if (Object1.SafeNameEmpJobTitle != Object2.SafeNameEmpJobTitle)
                {
                    equal = false;
                }
            }
            else if (Object1.SafeNameEmpJobTitle == null ^ Object1.SafeNameEmpJobTitle == null)
            {
                equal = false;
            }
            if (Object1.SafeNameEmpResponsibility != null && Object2.SafeNameEmpResponsibility != null)
            {
                if (Object1.SafeNameEmpResponsibility != Object2.SafeNameEmpResponsibility)
                {
                    equal = false;
                }
            }
            else if (Object1.SafeNameEmpResponsibility == null ^ Object1.SafeNameEmpResponsibility == null)
            {
                equal = false;
            }
            if (Object1.SafeNameEmpFunctionCategory != null && Object2.SafeNameEmpFunctionCategory != null)
            {
                if (Object1.SafeNameEmpFunctionCategory != Object2.SafeNameEmpFunctionCategory)
                {
                    equal = false;
                }
            }
            else if (Object1.SafeNameEmpFunctionCategory == null ^ Object1.SafeNameEmpFunctionCategory == null)
            {
                equal = false;
            }
            if (Object1.SafeNameEmpIndustryCategory != null && Object2.SafeNameEmpIndustryCategory != null)
            {
                if (Object1.SafeNameEmpIndustryCategory != Object2.SafeNameEmpIndustryCategory)
                {
                    equal = false;
                }
            }
            else if (Object1.SafeNameEmpIndustryCategory == null ^ Object1.SafeNameEmpIndustryCategory == null)
            {
                equal = false;
            }
            if (Object1.SafeNameEmpLocCountryRegion != null && Object2.SafeNameEmpLocCountryRegion != null)
            {
                if (Object1.SafeNameEmpLocCountryRegion != Object2.SafeNameEmpLocCountryRegion)
                {
                    equal = false;
                }
            }
            else if (Object1.SafeNameEmpLocCountryRegion == null ^ Object1.SafeNameEmpLocCountryRegion == null)
            {
                equal = false;
            }
            if (Object1.SafeNameEmpLocState != null && Object2.SafeNameEmpLocState != null)
            {
                if (Object1.SafeNameEmpLocState != Object2.SafeNameEmpLocState)
                {
                    equal = false;
                }
            }
            else if (Object1.SafeNameEmpLocState == null ^ Object1.SafeNameEmpLocState == null)
            {
                equal = false;
            }
            if (Object1.SafeNameEmpLocCity != null && Object2.SafeNameEmpLocCity != null)
            {
                if (Object1.SafeNameEmpLocCity != Object2.SafeNameEmpLocCity)
                {
                    equal = false;
                }
            }
            else if (Object1.SafeNameEmpLocCity == null ^ Object1.SafeNameEmpLocCity == null)
            {
                equal = false;
            }
            return(equal);
        }