Simon, you should use a FieldCompareSetPredicate.
Ref: LLBLGen Pro Help - Generated code - Adapter - Filtering and Sorting - The predicate system - FieldCompareSetPredicate
Your code could be like this:
// collection to fill
EntityCollection<UsersEntity> Users = new EntityCollection<UsersEntity>(new UsersEntityFactory());
// filter to retrieve collection
IRelationPredicateBucket filter = new RelationPredicateBucket();
// -- SETUP THE SUBQUERY --
// tblGroupMemberships.ifkGroupsID = @ifkGroupsID
IPredicateExpression subQueryFilter = new PredicateExpression(GroupMembershipsFields.ifkGroupsID == someValue);
/// WHERE NOT ipkUsersID IN ( SELECT tblGroupMemberships.ifkUsersID
/// FROM tblGroupMemberships WHERE tblGroupMemberships.ifkGroupsID = @ifkGroupsID )
/// Note: The last bool parameter indicate whether to negate or not. In this case result in NOT IN
filter.PredicateExpression.Add(
new FieldCompareSetPredicate(
UsersFields.ipkUsersID, null,
GroupMembershipsFields.ifkUsersID, null,
SetOperator.In,
subQueryFilter, true));
// data retrieval
using (DataAccessAdapter adapter = new DataAccessAdapter())
{
adapter.FetchEntityCollection(Users, filter);
}
David