Hi G.I,
If I understand your question correctly, you want to get a subset of data from multiple entities. When I need to do this I usually create a dynamic typed list. You can also create a typed list or typed view depending on your needs from the designer. I use the adapter scenario, So I do something like the following:
DataTable dt = new DataTable();
RelationPredicateBucket bucket = new RelationPredicateBucket();
DataAccessAdapter adapter = new DataAccessAdapter(true);
ResultsetFields fields = new ResultsetFields(5);
fields.DefineField(DeliverableFieldIndex.Name, 0, "Name");
fields.DefineField(UserFieldIndex.Name, 1, "Owner");
fields.DefineField(StatusTypeFieldIndex.Name, 2, "StatusType");
fields.DefineField(DeliverableDataFieldIndex.PlannedDate, 3, "PlannedDate");
fields.DefineField(DeliverableDataFieldIndex.ActualDate, 4, "ActualDate");
bucket.Relations.Add(MilestoneEntity.Relations.MilestoneDeliverableEntityUsingMilestoneId);
bucket.Relations.Add(MilestoneDeliverableEntity.Relations.DeliverableEntityUsingDeliverableId);
bucket.Relations.Add(DeliverableEntity.Relations.UserEntityUsingUserId);
bucket.Relations.Add(DeliverableEntity.Relations.DeliverableDataEntityUsingDeliverableId);
bucket.Relations.Add(DeliverableDataEntity.Relations.StatusTypeEntityUsingStatusTypeId);
bucket.PredicateExpression.Add(PredicateFactory.CompareValue(MilestoneFieldIndex.MilestoneId, ComparisonOperator.Equal, milestone.MilestoneId));
adapter.FetchTypedList(fields, dt, bucket);
adapter.CloseConnection();
return dt;
Basically, you just define the fields you need, and then create the relations between those fields and add them to a RelationPredicateBucket. Please note this is for read only purposes. I would check the docs for creating dynamic typed lists or something along those lines. Hope this helps.
Eric