Project Validation warning - "one navigator which is empty"

Posts   
 
    
Conrad
User
Posts: 37
Joined: 11-Jan-2008
# Posted on: 18-Apr-2013 23:46:10   

I am in the process of converting a 2.6 project to 4.0. After performing the project conversion, I have quite a few warnings. Most of them are similar to the following:

The relationship 'IceCream.Flavor - Flavor. (m.1)' has one navigator which is empty, which could lead to problems with SelfServicing.

In the 2.6 project, I hid relationships on the PK side for any "code" types of entities, not just the field related to the relationship.

In the conversion documentation, it states:

Relationship conversion All normal relationships which have their start entity as the FK side are emitted into the output, unless they're marked hidden, or used for hierarchies. If the relationship doesn't have an opposite, the relation is emitted, if the FK side is the start entity, otherwise the relation is ignored, as it's not a concept that's known in v4. Instead, in v2.x, the user should unhide the relation and hide the field mapped onto the relation. Custom relations which are present in just one side are seen as normal relations

Is this the source of my problem? Does this mean that I have to go through all of the entities (over 400) in the 2.6 project (before conversion) and unhide the relationship, then hide the field?

Also, we use the Adaptor template group. If I never use the SelfServicing templates, can I just make the warning go away?

Thanks.

Sorry for posting this in the incorrect forum...

daelmo avatar
daelmo
Support Team
Posts: 8245
Joined: 28-Nov-2005
# Posted on: 19-Apr-2013 08:13:54   

What I think is that you have relationships on v2.6 and you hide part one end of it. The conversion process migrates the relationships to the v4 output, and put an empty navigator on the hidden side (hidden in v2.6). As in v3.x and up there is a new concept: the navigator (the old v2.x field mapped onto relation), you you can't hide relationships ends, just put empty navigators.

As I can see, you can live with that and your code should work as before, and after all this is just a warning. If you want to have the empty navigator back you could:

A. Go back to v2.6 project and run a plugin to unhide relationships end. or B. In v4, give a name to the empty navigators, so they are emitted on the generated code

David Elizondo | LLBLGen Support Team
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39760
Joined: 17-Aug-2003
# Posted on: 19-Apr-2013 10:33:40   

It's only a problem for selfservicing, which requires the other side's navigator to be there for lazy loading. Customer.Orders 1:n Order.Customer. If Order.Customer is hidden/not there, to lazy load orders for a customer isn't possible as that's done by the Ordercollection, but as the order has no navigator on the relation ('Customer' isn't there), it doesn't know about Customer, hence it won't work.

If you're not using selfservicing but adapter instead, you have nothing to worry about in this regard.

Frans Bouma | Lead developer LLBLGen Pro