Master Detail Issue

You specified the new read-only properties Accredited and Certified. Since they are now in JSON, the Web Core client will receive those properties and send back to the server.

You could try to manually remove those properties from the JSON in Web Core app, but I think it's easier if you you just make then writeable in your entity:

    // Campos autocalculados
    [XDataProperty]
    property Accredited: Boolean read GetAccredited write SetAccredited;

    [XDataProperty]
    property Certified: Boolean read GetCertified write SetCertified;

Then in setters just ignore the value.

About the mapping, you should pay attention to bidirectional mapping, as explained here:

In summary do not use ForeignJoinColumn if you have the other side of the association and the field is already declared there with JoinColumn.