Check out the following code: (not compiled or tested)
ResultsetFields fields = new ResultsetFields(X); // whatever the count of your fields
fields.DefineField(CalendarEventCategoryEntity.CalendarEventCategoryId, 0);
fields.DefineField(CalendarEventCategoryEntity.myField1, 1);
fields.DefineField(MeetingTypeEntity.myFieldx, 2);
...
IRelationCollection relations = new RelationCollection();
relations.Add(CalendarEventCategoryEntity.Relations.MeetingTypeEntity);
PredicateExpression filter = new PredicateExpression();
filter.Add(CalendarEventCategoryEntity.CalendarEventCategoryId == XYZ)
// The following should work too.
// filter.Add(fields[0] == XYZ)
DataTable dynamicList = new DataTable();
TypedListDAO dao = new TypedListDAO();
dao.GetMultiAsDataTable(fields, dynamicList, 0, null, filter, relations, true, null, null, 0, 0);