Ok, thanks jbb.
I've searched and found the missing link and the source of my confusion. When I first tried to use the EntityView, I wasn't sure how to access the filtered collection -- this wasn't clear in the documentation.
For example, I have this:
CustomerCollection customers = new CustomerCollection();
customers.GetMulti(null); // fetch all Customers
EntityView<CustomerEntity> customerView = new EntityView<CustomerEntity>(customers);
IPredicate filter = (CustomerFields.Country == "UK");
customerView.Filter = filter;
costomerView isn't an EntityCollection, and customerView.RelatedCollection just referenced the original (unfiltered) collection. So I thought I must project this onto a new EntityCollection, requiring me to set up all of the EntityPropertyProjection objects for every field in the collection (which seemed redundant to me).
I just now found the ToEntityCollection method on the EntityView:
CustomerCollection filteredCustomers = (CustomerCollection)customerView.ToEntityCollection();
However, this isn't covered at all in the documentation. To me, this seems like it would be a common task, but I just happened upon it by chance. Is there a reason this isn't covered under the "Generated code - Using the EntityView class" topic? Is this a deprecated method, and I should go about accomplishing this another way? Or, is what I'm trying to do not something that is done very often?
Thanks again for the help everyone.