Исключение привязки данных со свойством навигации объекта

У меня есть два класса Entity: Order а также OrderItem, Order содержит свойство навигации OrderItemSet типа

System.Data.Objects.DataClasses.EntityCollection<OrderItem>

На странице aspx FormView привязан к этому EntityDataSource:

<asp:EntityDataSource ID="EntityDataSourceOrder" runat="server" 
    ConnectionString="name=EntitiesContext" 
    DefaultContainerName="EntitiesContext" 
    EntitySetName="Order" 
    Include="OrderItemSet"

    // stuff to define a query

</asp:EntityDataSource>

FormView привязан к DataSource, а ItemTemplate этого FormView содержит ListView, который я пытаюсь связать с OrderItemSet. Это выглядит так:

<asp:FormView ID="FormViewOrder" runat="server" DataKeyNames="OrderID" 
              DataSourceID="EntityDataSourceOrder" AllowPaging="True" >
    <ItemTemplate>
        ...

        <asp:ListView ID="ListViewOrderItems" runat="server" 
                      DataSource='<%# Eval("OrderItemSet")%>' >
            ...
        </asp:ListView>
    </ItemTemplate>
</asp:FormView>

Когда я запускаю приложение, я получаю исключение, указывающее на строку DataSource='<%# Eval("OrderItemSet")%>' в разметке и говорю мне:

Привязка данных: System.Web.UI.WebControls.EntityDataSourceWrapper не содержит свойство с именем 'OrderItemSet'

Что здесь не так?

(Я проделал то же самое с другими свойствами навигации, которые не являются списками, а ссылками на отдельные объекты, и это работает.)

Спасибо за помощь!

1 ответ

Решение

Мне кажется, что вы пытаетесь оценить коллекцию из источника данных без предварительной привязки к этому источнику данных.

Почему бы вам не попробовать привязку непосредственно к источнику данных? Например

<asp:ListView ID="ListViewOrderItems" runat="server" 
            DataSourceID="EntityDataSourceOrder"
...
</asp:ListView>
Другие вопросы по тегам