Is this example ok?
// C#
using (DataAccessAdapter adapter = new DataAccessAdapter())
{
ResultsetFields fields = new ResultsetFields(3);
// simply set the fields in the indexes, which will use the field name for the column name
fields[0] = CustomersFields.CustomerId;
fields[1] = CustomersFields.CompanyName;
fields[2] = OrdersFields.OrderId;
RelationPredicateBucket filter = new RelationPredicateBucket(CustomersFields.Country == "Germany");
filter.Relations.Add(CustomersEntity.Relations.OrdersEntityUsingCustomerId);
ISortExpression sorter = new SortExpression();
sorter.Add(new SortClause(CustomersFields.CompanyName, null, SortOperator.Ascending));
IDataReader reader = adapter.FetchDataReader(fields, filter, CommandBehavior.CloseConnection, 0, sorter, false);
while (reader.Read())
{
Console.WriteLine("Row: {0} | {1} | {2} |",
reader.GetValue(0), reader.GetValue(1), reader.GetValue(2));
}
reader.Close();
}