Исключение привязки данных со свойством навигации объекта
У меня есть два класса 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>