1

我有两个实体类:OrderOrderItem. Order包含OrderItemSet类型的导航属性

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

在 aspx 页面上是绑定到此 EntityDataSource 的 FormView:

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

    // stuff to define a query

</asp:EntityDataSource>

FormView 绑定到 DataSource,并且此 FormView 的 ItemTemplate 包含一个 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”的属性

这里有什么问题?

(我对其他不是列表而是单个对象引用的导航属性也做了同样的事情,这很有效。)

谢谢你的帮助!

4

1 回答 1

1

在我看来,您正在尝试从数据源中评估集合,而不首先绑定到该数据源。

为什么不尝试直接绑定到数据源?例如

<asp:ListView ID="ListViewOrderItems" runat="server" 
            DataSourceID="EntityDataSourceOrder"
...
</asp:ListView>
于 2010-03-10T23:42:46.103 回答