2011-08-29 19 views
0

我通過本教程:http://www.asp.net/entity-framework/tutorials/the-entity-framework-and-aspnet-%E2%80%93-getting-started-part-3如何在實體數據源的一對多關係中包含外鍵?

約2/3下來的頁面,你會看到:

的OrderByExpression元素指定結果集將通過課程名稱部門名稱中訂購。注意如何指定部門名稱:Department.Name。由於課程實體和部門實體之間的關聯是一對一的關係,因此部門導航屬性包含部門實體。 (如果這是一對多關係,則該屬性將包含一個集合。)要獲取部門名稱,您必須指定Department實體的Name屬性。

如何爲我的一對多關係設置一個集合?我環顧網絡,找不到答案。我收到以下消息當我運行頁:

數據綁定:「System.Data.Objects.DataClasses.EntityCollection`1 [QCPropertiesModel.Property,App_Code.s8yp4uy2,版本= 0.0.0.0,文化=中性,PublicKeyToken = null]]'不包含名爲'DataPublished'的屬性。

這是我的代碼:

<asp:EntityDataSource ID="PropertiesDataSource" runat="server" 
ConnectionString="name=QCPlacesEntities" 
    DefaultContainerName="QCPlacesEntities" EnableFlattening="False" 
EntitySetName="CustomerDetails" 
include="Properties"> 
</asp:EntityDataSource> 

    <asp:QueryExtender ID="SearchQueryExtender" runat="server" 
    TargetControlID="PropertiesDataSource" > 
</asp:QueryExtender> 
    <asp:GridView ID="SearchGridView" runat="server" AutoGenerateColumns="False" 
    DataKeyNames="CustomerID" DataSourceID="PropertiesDataSource" AllowPaging="true"> 
    <Columns> 
     <asp:TemplateField HeaderText="Date Published"> 
      <ItemTemplate> 
       <asp:Label ID="Label2" runat="server" Text='<%# Eval("Properties.DatePublished") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:BoundField DataField="CustomerID" HeaderText="ID"/> 
     <asp:BoundField DataField="CustomerLName" HeaderText="Last Name" /> 
     <asp:BoundField DataField="CustomerFName" HeaderText="First Name" /> 
    </Columns> 
</asp:GridView> 

回答

0

你有一對多的關係用PropertiesModelEval("Properties.DatePublished")不正確,因爲PropertiesPropertiesModel的集合,因此不會有一個屬性叫做DatePublished

Properties[0].DatePublished 

將具有該屬性。

相關問題