Datenbindung Ausnahme mit Entität Navigationseigenschaft
Frage
Ich habe zwei Klassen Entity: Order
und OrderItem
. Order
enthält eine Navigationseigenschaft OrderItemSet
vom Typ
System.Data.Objects.DataClasses.EntityCollection<OrderItem>
Auf einer aspx Seite ist ein Formview zu diesem EntityDataSource gebunden:
<asp:EntityDataSource ID="EntityDataSourceOrder" runat="server"
ConnectionString="name=EntitiesContext"
DefaultContainerName="EntitiesContext"
EntitySetName="Order"
Include="OrderItemSet"
// stuff to define a query
</asp:EntityDataSource>
Die Formview auf die Datasource und die ItemTemplate dieser Formview gebunden ist, enthält eine Listview, die ich dem OrderItemSet zu binden versuchen. Es sieht so aus:
<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>
Wenn ich die Anwendung ausführen bekomme ich eine Ausnahme deutete auf die Linie DataSource='<%# Eval("OrderItemSet")%>'
in Markup und mir zu sagen:
Databinding: System.Web.UI.WebControls.EntityDataSourceWrapper enthält keine Eigenschaft mit dem Namen 'OrderItemSet'
Was ist hier falsch?
(Ich habe das gleiche mit anderen Navigationseigenschaften durchgeführt, die keine Listen sind aber einzelne Objektreferenzen, und das funktioniert.)
Vielen Dank für die Hilfe!
Lösung
Es scheint mir, dass Sie eine Sammlung aus einer Datenquelle zu bewerten versuchen, ohne zuerst auf diese Datenquelle zu binden.
Warum versuchen Sie nicht direkt an die Datenquelle verbindlich? Z.
<asp:ListView ID="ListViewOrderItems" runat="server"
DataSourceID="EntityDataSourceOrder"
...
</asp:ListView>