v3 - adapter, DynamicRelation alias

Posts   
 
    
miloszes
User
Posts: 222
Joined: 03-Apr-2007
# Posted on: 27-Jan-2011 14:06:35   

Hi,

I have a query with subquery. In the subquery, I'm trying to define two DynamicRelations.


string fieldAlias1 = "m1";
                    string contentLinkAlias = "cl";
                    string fieldAlias2 = "m2";




DynamicRelation dynamicRelationFrom = new DynamicRelation(EntityType.FieldEntity, JoinHint.Inner, EntityType.ContentLinkEntity, fieldAlias1, contentLinkAlias, FieldFields.IdMainContent.SetObjectAlias(contentLinkAlias) == ContentLinkFields.IdFrom.SetObjectAlias(fieldAlias1));

                    subQueryRelations.Add(dynamicRelationFrom);

                    
                    DynamicRelation dynamicRelationTo = new DynamicRelation(EntityType.ContentLinkEntity, JoinHint.Inner, EntityType.FieldEntity, contentLinkAlias, fieldAlias2, ContentLinkFields.IdTo.SetObjectAlias(fieldAlias2) == FieldFields.IdMainContent.SetObjectAlias(contentLinkAlias));

                    subQueryRelations.Add(dynamicRelationTo);

The relations were generated correctly except the aliases. Above you'll find a part of generated query.

FROM (( "content"."fields" "LPA_m1"  
        INNER JOIN "content"."content_links" "LPA_c2"  ON  "cl"."id_main_content" = "m1"."id_from") 
        INNER JOIN "content"."fields" "LPA_m3"  ON  "m2"."id_to" = "cl"."id_main_content") 

What I'm doing wrong? I've also tried to use SetFieldAlias but in such case non alias we're created in the SQL.

Regards, MiloszeS

MTrinder
User
Posts: 1461
Joined: 08-Oct-2008
# Posted on: 27-Jan-2011 21:31:17   

Do you need the aliases ? I can't see from your query why they would be necessary. What happens if you try without them ?

Matt

miloszes
User
Posts: 222
Joined: 03-Apr-2007
# Posted on: 28-Jan-2011 08:19:41   

I need to make a join with two tables.

A(fields) join B (link table) join A(fields)

I need to filter both of them using Predicate and then group by some constraint.

When I didn't use aliases sql generated query miss one join. It was:

A join B

when I've added aliases two joins appears as expected (with wrong alias).

MiloszeS

miloszes
User
Posts: 222
Joined: 03-Apr-2007
# Posted on: 28-Jan-2011 12:51:30   

sorry, it was my code fault. I don't know what was wrong - probably, I've changed the aliases order.

Regards, MiloszeS