I think it is related to this question: How do I load related entities of type IEnumerable<T>, where it is asked why navigation properties can't implement IEnumerable
.
In the current EF 6 source there is a check whether a type is supported for materialization. There it only says in a comment
// types implementing IEnumerable are not supported
Not much of an explanation there.
However, for collection properties I can see why it makes sense to require at least ICollection
s, because it is essential that object can be added and removed from collections (IEnumerable
has no Add
and Delete
methods).
I think that the case of a projected type implementing IEnumerable
was either deemed too uncommon to support or just overlooked.