【问题标题】:Databinding exception with entity navigation property实体导航属性的数据绑定异常
【发布时间】:2010-03-04 20:53:19
【问题描述】:

我有两个实体类:OrderOrderItemOrder 包含一个导航属性 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 包含我尝试绑定到 OrderItemSet 的 ListView。看起来是这样的:

<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='&lt;%# Eval("OrderItemSet")%&gt;' 行的异常并告诉我:

DataBinding:System.Web.UI.WebControls.EntityDataSourceWrapper 不包含名为“OrderItemSet”的属性

这里有什么问题?

(我已经对其他不是列表而是单个对象引用的导航属性做了同样的事情。)

感谢您的帮助!

【问题讨论】:

    标签: asp.net entity-framework data-binding entitydatasource navigation-properties


    【解决方案1】:

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

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

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

    【讨论】:

    • 西安您好,感谢您的回复!实际上,我的 DataSource 绑定到了 FormView。而我说的ListView是这个FormView的ItemTemplate的一部分。因此,我不想将 ListView 绑定到订单的“完整”数据源,而只想绑定到订单的特定导航属性(OrderItems 列表)。我试图在上面的问题中澄清这一点。
    • 也许 FormView 的数据绑定发生得太晚了。您可以尝试挂钩 FormView 的 OnDataBound 事件,然后以编程方式设置 ListViewOrderItems 的 DataSource。
    • 谢谢西安!这就是我现在实际上正在做的事情,并且有效。也许您是对的,数据绑定为时已晚,但是异常的错误消息非常令人困惑。我现在就结束这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    • 1970-01-01
    相关资源
    最近更新 更多