When there's no extraCustomer object available when setting the field on related field, no object is created for you. So the value is lost and there's no extraCustomer entity created on save. You want that to happen in your situation?
You could try to add to the Customer's InitClassEmpty method's user code region to set the ExtraCustomer object always to an instance using this.ExtraCustomer = new ExtraCustomerEntity(); . Then, during prefetch, the customers which have an extra customer get that object (the new one is removed) and the ones which don't have an extracustomer will keep their new ones. Of course, when saving the customer objects, you'll get all those new ones as well, so either remove them prior to saving (via a validator) or use a different strategy (for example by overriding the FieldOnRelatedField property in a derived CustomerEntity class, and in there, you check if there's already an extraCustomer instance, if not, first create it and then call the base' method.