Вам просто нужно указать псевдоним для каждого отношения, которое вы добавляете - если я правильно помню, что-то есть в файле документации LLBLGen, в котором говорится об этом.
Это взято из документации LLBLGen 2.6, для "расширенной фильтрации" вы можете увидеть, как дважды присоединиться к одной и той же таблице и использовать псевдонимы для управления вашими фильтрами:
... Решение состоит в том, чтобы создать псевдоним сущностей в отношении, добавленных в RelationCollection, а также использовать тот же псевдоним в предикате. Если вы опускаете псевдоним, он считается не псевдонимом, и если вы связали объект с ранее добавленным отношением к тому же RelationCollection, он будет считаться другим объектом в списке соединений. Таким образом, при псевдониме Customer к «C» в первом отношении, а во втором отношении вы не указываете псевдоним для Customer, вы получите 2 раза сущность Customer в списке соединений. Поэтому используйте алиасинг с осторожностью.
В нашем примере Customer и двух объектов Address с двумя предикатами City будет приведен следующий код. Обратите внимание на использование псевдонима в предикатах.
// C#
IRelationPredicateBucket bucket = new RelationPredicateBucket();
bucket.Relations.Add(CustomerEntity.Relations.AddressEntityUsingVisitingAddressID, "VisitingAddress");
bucket.Relations.Add(CustomerEntity.Relations.AddressEntityUsingBillingAddressID, "BillingAddress");
bucket.PredicateExpression.Add((AddressFields.City.SetObjectAlias("VisitingAddress")=="Amsterdam") &
(AddressFields.City.SetObjectAlias("BillingAddress")=="Rotterdam"));
EntityCollection customers = new EntityCollection(new CustomerEntityFactory());
DataAccessAdapter adapter = new DataAccessAdapter();
adapter.FetchEntityCollection(customers, bucket);