You need 2 collections because order.Customer isn't a collection, so you can't set it to DataMember, as that expects it to be an IList implementing collection (and it's a single object).
First, define the filter for the orders.
IPredicateExpression filter = new PredicateExpression( (OrderFields.StartDate >= DateTime.Now.Subtract(new TimeSpan(90,0,0,0))) &
(OrderFields.Assigned == 0));
then fetch the orders in collection orders:
EntityCollection orderColl = new EntityCollection(new OrderEntityFactory());
adapter.FetchEntityCollection(orderColl, new RelationPredicateBucket(filter));
Now fetch all customers. We'll re-use the filter we just created and will create a query like:
select * from customer where customerid in (select customerid from orders where <orderfilter>)
This is done using a FieldCompareSetPredicate.
Fetch code for customer
RelationPredicateBucket filterCustomer = new RelationPredicateBucket();
filterCustomer.PredicateExpression.Add(new FieldCompareSetPredicate(
CustomerFields.CustomerId, null,
OrderFields.CustomerId, null,
SetOperator.In,
filter));
EntityCollection customers = new EntityCollection(new CustomerEntityFactory());
adapter.FetchEntityCollection(customers, filterCustomer);