我有一个实体框架层,并从该层扩展了一个类。代码如下:
public partial class FeatureMaster : EntityObject
{
public string ParentFeatureName
{
get
{
return (from r in Global.dc.FeatureMasters
where r.FeatureId == FeatureParentId
select r).SingleOrDefault().FeatureName;
}
set
{
FeatureParentId = (from r in Global.dc.FeatureMasters
where r.FeatureName == value
select r).SingleOrDefault().FeatureId;
ReportPropertyChanged(("ParentFeatureName"));
ReportPropertyChanged(("FeatureParentId"));
}
}
}
现在我希望在我的 ASP.NET 页面中使用它。我的 ASP.NET 页面的代码是:
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true"
CodeBehind="ListFeatureMaster.aspx.cs" Inherits="Backend.ListFeatureMaster" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="cpMain" runat="server">
<asp:GridView ID="grdRecords" runat="server" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" DataKeyNames="FeatureId" DataSourceID="EntityDataSource1">
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
<asp:BoundField DataField="FeatureId" HeaderText="FeatureId" ReadOnly="True" SortExpression="FeatureId" />
<asp:BoundField DataField="FeatureName" HeaderText="FeatureName" SortExpression="FeatureName" />
<asp:BoundField DataField="FeatureParentId" HeaderText="FeatureParentId" SortExpression="FeatureParentId" />
<asp:BoundField DataField="FeatureDescription" HeaderText="FeatureDescription" SortExpression="FeatureDescription" />
<asp:TemplateField HeaderText="ParentFeatureName" SortExpression="ParentFeatureName">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="EntityDataSource1"
AppendDataBoundItems="true" DataTextField="ParentFeatureName" DataValueField="ParentFeatureName"
SelectedValue='<%# Bind("ParentFeatureName") %>'>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("ParentFeatureName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:EntityDataSource ID="EntityDataSource1" runat="server" ConnectionString="name=BackendEntities"
DefaultContainerName="BackendEntities" EnableFlattening="False" EntitySetName="FeatureMasters"
EntityTypeFilter="FeatureMaster" EnableDelete="True" EnableUpdate="True">
</asp:EntityDataSource>
<asp:EntityDataSource ID="EntityDataSource2" runat="server" ConnectionString="name=BackendEntities"
DefaultContainerName="BackendEntities" EnableFlattening="False" EntitySetName="FeatureMasters"
EntityTypeFilter="FeatureMaster" EnableDelete="True" EnableUpdate="True">
</asp:EntityDataSource>
</asp:Content>
问题是当我执行这段代码时,它在第一次加载和导航时运行良好,但是当我尝试更新记录时,我得到了错误。请帮我解决同样的问题。
错误信息说:
A property named 'ParentFeatureName' was not found on the entity during an insert, update, or delete operation. Check to ensure that properties specified as binding expressions are available to the data source.