Inheritance: System.IComparable, System.ICloneable, INotifyPropertyChanged
		///<summary>
		/// Determines whether the specified <see cref="VStoreWithDemographicsBase"/> instances are considered equal.
		///</summary>
		///<param name="Object1">The first <see cref="VStoreWithDemographicsBase"/> to compare.</param>
		///<param name="Object2">The second <see cref="VStoreWithDemographicsBase"/> 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(VStoreWithDemographicsBase Object1, VStoreWithDemographicsBase 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.CustomerId != Object2.CustomerId)
				equal = false;
			if (Object1.Name != Object2.Name)
				equal = false;
			if (Object1.ContactType != Object2.ContactType)
				equal = false;
			if (Object1.Title != null && Object2.Title != null )
			{
				if (Object1.Title != Object2.Title)
					equal = false;
			}
			else if (Object1.Title == null ^ Object1.Title == null )
			{
				equal = false;
			}
			if (Object1.FirstName != Object2.FirstName)
				equal = false;
			if (Object1.MiddleName != null && Object2.MiddleName != null )
			{
				if (Object1.MiddleName != Object2.MiddleName)
					equal = false;
			}
			else if (Object1.MiddleName == null ^ Object1.MiddleName == null )
			{
				equal = false;
			}
			if (Object1.LastName != Object2.LastName)
				equal = false;
			if (Object1.Suffix != null && Object2.Suffix != null )
			{
				if (Object1.Suffix != Object2.Suffix)
					equal = false;
			}
			else if (Object1.Suffix == null ^ Object1.Suffix == null )
			{
				equal = false;
			}
			if (Object1.Phone != null && Object2.Phone != null )
			{
				if (Object1.Phone != Object2.Phone)
					equal = false;
			}
			else if (Object1.Phone == null ^ Object1.Phone == null )
			{
				equal = false;
			}
			if (Object1.EmailAddress != null && Object2.EmailAddress != null )
			{
				if (Object1.EmailAddress != Object2.EmailAddress)
					equal = false;
			}
			else if (Object1.EmailAddress == null ^ Object1.EmailAddress == null )
			{
				equal = false;
			}
			if (Object1.EmailPromotion != Object2.EmailPromotion)
				equal = false;
			if (Object1.AddressType != Object2.AddressType)
				equal = false;
			if (Object1.AddressLine1 != Object2.AddressLine1)
				equal = false;
			if (Object1.AddressLine2 != null && Object2.AddressLine2 != null )
			{
				if (Object1.AddressLine2 != Object2.AddressLine2)
					equal = false;
			}
			else if (Object1.AddressLine2 == null ^ Object1.AddressLine2 == null )
			{
				equal = false;
			}
			if (Object1.City != Object2.City)
				equal = false;
			if (Object1.StateProvinceName != Object2.StateProvinceName)
				equal = false;
			if (Object1.PostalCode != Object2.PostalCode)
				equal = false;
			if (Object1.CountryRegionName != Object2.CountryRegionName)
				equal = false;
			if (Object1.AnnualSales != null && Object2.AnnualSales != null )
			{
				if (Object1.AnnualSales != Object2.AnnualSales)
					equal = false;
			}
			else if (Object1.AnnualSales == null ^ Object1.AnnualSales == null )
			{
				equal = false;
			}
			if (Object1.AnnualRevenue != null && Object2.AnnualRevenue != null )
			{
				if (Object1.AnnualRevenue != Object2.AnnualRevenue)
					equal = false;
			}
			else if (Object1.AnnualRevenue == null ^ Object1.AnnualRevenue == null )
			{
				equal = false;
			}
			if (Object1.BankName != null && Object2.BankName != null )
			{
				if (Object1.BankName != Object2.BankName)
					equal = false;
			}
			else if (Object1.BankName == null ^ Object1.BankName == null )
			{
				equal = false;
			}
			if (Object1.BusinessType != null && Object2.BusinessType != null )
			{
				if (Object1.BusinessType != Object2.BusinessType)
					equal = false;
			}
			else if (Object1.BusinessType == null ^ Object1.BusinessType == null )
			{
				equal = false;
			}
			if (Object1.YearOpened != null && Object2.YearOpened != null )
			{
				if (Object1.YearOpened != Object2.YearOpened)
					equal = false;
			}
			else if (Object1.YearOpened == null ^ Object1.YearOpened == null )
			{
				equal = false;
			}
			if (Object1.Specialty != null && Object2.Specialty != null )
			{
				if (Object1.Specialty != Object2.Specialty)
					equal = false;
			}
			else if (Object1.Specialty == null ^ Object1.Specialty == null )
			{
				equal = false;
			}
			if (Object1.SquareFeet != null && Object2.SquareFeet != null )
			{
				if (Object1.SquareFeet != Object2.SquareFeet)
					equal = false;
			}
			else if (Object1.SquareFeet == null ^ Object1.SquareFeet == null )
			{
				equal = false;
			}
			if (Object1.Brands != null && Object2.Brands != null )
			{
				if (Object1.Brands != Object2.Brands)
					equal = false;
			}
			else if (Object1.Brands == null ^ Object1.Brands == null )
			{
				equal = false;
			}
			if (Object1.Internet != null && Object2.Internet != null )
			{
				if (Object1.Internet != Object2.Internet)
					equal = false;
			}
			else if (Object1.Internet == null ^ Object1.Internet == null )
			{
				equal = false;
			}
			if (Object1.NumberEmployees != null && Object2.NumberEmployees != null )
			{
				if (Object1.NumberEmployees != Object2.NumberEmployees)
					equal = false;
			}
			else if (Object1.NumberEmployees == null ^ Object1.NumberEmployees == 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="VStoreWithDemographicsBase"/> and has the same value as this instance; otherwise, false.</returns>
		public virtual bool Equals(VStoreWithDemographicsBase toObject)
		{
			if (toObject == null)
				return false;
			return Equals(this, toObject);
		}