1

У меня есть два класса сущностей: 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")%>' в разметке и говоря мне:

DataBinding: System.Web.UI.WebControls.EntityDataSourceWrapper не содержат свойство с именем «OrderItemSet»

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

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

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

ответ

1

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

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

<asp:ListView ID="ListViewOrderItems" runat="server" 
      DataSourceID="EntityDataSourceOrder" 
... 
</asp:ListView> 
+0

Здравствуйте, Xian, спасибо, что ответит! На самом деле мой DataSource привязан к FormView. И ListView, о котором я говорю, является частью ItemTemplate этого FormView. Поэтому я не хочу привязывать ListView к «полному» DataSource заказа, но только к определенному свойству навигации (списку OrderItems) заказа. Я попытался прояснить это в моем вопросе выше. – Slauma

+0

Возможно, привязка данных FormView происходит слишком поздно. Вы можете попробовать подключиться к событию OnDataBound в FormView и затем программно установить DataSource из ListViewOrderItems. – codemonkeh

+0

Спасибо Сиань! Это то, что я сейчас делаю, и это работает. Возможно, вы правы, а привязка данных слишком поздняя, ​​но сообщение об ошибке исключения довольно запутанно. Я сейчас закрою этот вопрос. – Slauma

Смежные вопросы