在实体框架中绑定自定义属性
我的 EF 模型中有一个员工实体。然后,我向项目添加了一个类以添加自定义属性
public partial class Employee
{
public string Name
{
get { return string.Format("{0} {1}", this.FirstName, this.LastName); }
}
}
在 aspx 表单(在 FormView 内)上,我想将 DropDownList 绑定到员工集合:
<asp:Label runat="server" AssociatedControlID="ddlManagerId"
Text="ManagerId" />
<asp:DropDownList ID="ddlManagerId" runat="server"
DataSourceID="edsManagerId"
DataValueField="Id"
DataTextField="Name"
AppendDataBoundItems="true"
SelectedValue='<%# Bind("ManagerId") %>'>
<asp:ListItem Text="-- Select --" Value="0" />
</asp:DropDownList>
<asp:EntityDataSource ID="edsManagerId" runat="server"
ConnectionString="name=Entities"
DefaultContainerName="Entities"
EntitySetName="Employees"
EntityTypeFilter="Employee"
EnableFlattening="true">
</asp:EntityDataSource>
不幸的是,当我启动页面时,我收到错误:
DataBinding: 'System.Web.UI.WebControls.EntityDataSourceWrapper' does not contain a property with the name 'Name'.
Any ideas我做错了什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
经过大量搜索后,我发现 EntityDataSource 不支持部分类中的自定义属性。它仅返回模型中的实体。
After much searching I discovered that that the EntityDataSource does not support custom properties in the partial classes. It only returns the entity that is in the model.
根据此 文章:
有关扁平化的更多信息,请参见 此处。
As per this article:
<asp:EntityDataSource
...
EnableFlattening="False"
...
</asp:EntityDataSource>
More information on Flattening is here.
您能否验证您的两个部分 Employee 类是否位于同一名称空间中?
Could you verify that both your partial Employee classes are in the same namespace?