Hi Magic, sorry for the confusion.
The example I refered to, was one showing how to bind an entityCollection and access one of its related entity's field.
This was done in the aspx code, for example binding a Products collection, if you want to display the CategoryName from the related Category entity, you would do something like:
<asp:TemplateField HeaderText="Category" SortExpression="CategoryId">
<ItemTemplate>
<asp:Label ID="Category" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Category.CategoryName")%>' />
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="Categories" runat="server" DataSourceID="CategoriesDS" DataTextField="CategoryName"
DataValueField="CategoryId" SelectedValue='<%# Bind("CategoryId") %>' />
</EditItemTemplate>
</asp:TemplateField>
The edit template is just a bonus tip
Now if you want to avoid aspx code, then simply try to mimic this in code, or the original way is to use the RowDataBound event to display what you need, where you can digg deep in the related entities and pick any field you like to be displayed.
That's if you still want to use the entityCollection approach.
But your case seems a lot different:
What I'm trying to achieve is a completely "dynamic" data source for a grid view. Basically basing a GridView on a db view without having to really create a view in the database.
So for example ... I start out with the OrderEntity (to stick to your example). If I want a GridView that shows more details about the CustomerEntity, I "join in" the customer. If I want to have more details about the product ordered, I "join in" the ProductEntity, or maybe also the "ProductCategory" entity.
I might need such views depending on how I look at the order, from a "customer's perspective", or from a "product's perspective" etc.
Reading the above analysis I say you should use a DynamicList, where you can dynamically add fields and join to tables/entities.
Then comes the databinding part, which is required to be done in code not in aspx, so now you have constructed and fetched a dataTable, and the ball is your now to try to display it in a GridView or anything else.