/// <summary> Updates in the persistent storage all CustomerAddress entities which have data in common with the specified related Entities. If one is omitted, that entity is not used as a filter.
        /// Which fields are updated in those matching entities depends on which fields are <i>changed</i> in the passed in entity entityWithNewValues. The new values of these fields are read from entityWithNewValues. </summary>
        /// <param name="entityWithNewValues">CustomerAddressEntity instance which holds the new values for the matching entities to update. Only changed fields are taken into account</param>
        /// <param name="addressInstance">AddressEntity instance to use as a filter for the CustomerAddressEntity objects to return</param>
        /// <param name="addressTypeInstance">AddressTypeEntity instance to use as a filter for the CustomerAddressEntity objects to return</param>
        /// <param name="customerInstance">CustomerEntity instance to use as a filter for the CustomerAddressEntity objects to return</param>
        /// <returns>Amount of entities affected, if the used persistent storage has rowcounting enabled.</returns>
        public int UpdateMultiManyToOne(CustomerAddressEntity entityWithNewValues, IEntity addressInstance, IEntity addressTypeInstance, IEntity customerInstance)
        {
            CustomerAddressDAO dao = DAOFactory.CreateCustomerAddressDAO();

            return(dao.UpdateMulti(entityWithNewValues, base.Transaction, addressInstance, addressTypeInstance, customerInstance));
        }