Yes. From your example, the code should looks like:
EntityCollection<SomeEntity> theCollection = new EntityCollection<SomeEntity>(new SomeEntityFactory());
// the filter
IRelationPredicateBucket bucket = new RelationPredicateBucket();
bucket.PredicateExpression.Add(SomeFields.SomeKey == 234);
bucket.PredicateExpression.Add(SomeFields.SomeDate >= new DateTime(2008, 10, 1));
using (DataAccessAdapter adapter = new DataAccessAdapter())
{
adapter.FetchEntityCollection(theCollection, bucket);
}
The difference between IRelationPredicateBucket and IPredicateExpression is that the RelationPredicateBucket contains a PredicateExpression and a RelationCollection. So, if you want to filter on a related entity, you have to add that relation to the Relations property of the bucket.
For EntityCollection fetches, Adapter templateSet uses IRelationPredicateBucket, SelfServicing uses IPredicateExpression.