大约2/3页面,你会看到:
OrderByExpression元素指定结果集将按部门名称中的课程标题排序。请注意部门名称的指定方式:Department.Name。由于Course实体与Department实体之间的关联是一对一的,因此Department导航属性包含Department实体。 (如果这是一对多关系,则属性将包含集合。)要获取部门名称,必须指定Department实体的Name属性。
如何为我的一对多关系设置一个集合?我环顾四周,找不到答案。运行页面时收到以下消息:
DataBinding:'System.Data.Objects.DataClasses.EntityCollection`1 [[QCPropertiesModel.Property,App_Code.s8yp4uy2,Version = 0.0.0.0,Culture = neutral,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 :(得分:0)
PropertiesModel
使用Eval("Properties.DatePublished")
与Properties
有一对多的关系不正确,因为PropertiesModel
是DatePublished
的集合,因此它没有名为{{1的属性}}
Properties[0].DatePublished
将拥有该财产。