When reorganizing inverses when both properties exist, the following actions occur.
All instances of both classes are processed.
If the existing property is a collection, each collection member is processed in turn.
All instances of the properties in both classes are verified.
If a non-existent object is referenced, the property is set to null. If the property is a collection, an error message is reported.
If the inverse of an object being referenced is null, a valid relationship is defined by setting the value of the inverse to the reference.
If the inverse is a collection that does not contain the reference, the reference is added to the collection.
If the inverse of an object being referenced refers to another instance, the inverse is invalid, and an error message is reported.
If a manual to automatic inverse relationship is added to a property and one or more relationships are already defined to the same class, the new inverse is populated from the manual property.
For all other reference update modes, the new inverse is not populated and the application must manually define the inverses that are maintained.