Sorry for Answering but I cannot Comment...
Are you sure your metadata actually exposes all entities?
I stumbled accross this the other day on GitHub
just a thought...
EDIT:
Actually I was curious so I went to see the sources. in this file (line 364) it says:
if (memDef.inverseProperty === '$$unbound') {
//member definition is navigation but not back reference
It seems like your navigation property is not setup for referencing his parent.
Consider the following:
$data.Entity.extend('Entities.User', {
'IdPerson': { 'key': true, 'type': 'Edm.Guid', 'nullable': false, 'computed': true },
'Login': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 20 },
'Password': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 36 },
'Role': { 'type': 'Entities.Role', 'inverseProperty': 'User' }
});
$data.Entity.extend('Entities.Role', {
'IdRole': { 'key': true, 'type': 'Edm.Guid', 'nullable': false, 'computed': true },
'User': { 'type': 'Array', 'elementType': 'Entities.User', 'inverseProperty': 'Role' }
});
this is actually part of one of my working models, I tried putting '$$unbound' in inverse property and it reproduced your bug.
You should make sure your underlying data model has the proper foreign keys and multiplicity configured. this is in fact what 'inverseProperty' is used for.