Please ignore my first question about having to specify the fields in the valueProjectors.
Sorry the second question was not formulated clearly enough. What I meant is the following.
It is possible to fetch an EntityCollection with an include fields list. So the EntityCollection has a way of knowing which fields were fetched (e.g., when saving it later it won't replace unfetched elements with some kind of default value).
Now when I create an EntityCollection using DataProjectorToIEntityCollection2, I similarly specify certain fields to be selected (first as part of the select query, and second as part of the value projectors).
Therefore, I was expecting that creating an EntityCollection using DataProjectorToIEntityCollection2 would be equivalent to adapter.FetchEntityCollection.
However, this is not the case. Most obviously, the .IsNew Flags of the entities are set to True when fetched using DataProjectorToIEntityCollection2 and set to false when fetched using adapter.FetchEntityCollection.