实体框架自定义属性数据绑定错误

时间:2012-04-18 15:36:21

标签: .net vb.net entity-framework

我有一个从具有整数属性 hide 的表生成的实体。我在部分类 HideBoolean 中创建了一个自定义属性,将整数属性转换为布尔值。

    Public Property HideBoolean As Boolean
        Get
            Return If(hide = 1, True, False)
        End Get
        Set(ByVal value As Boolean)
            Me.hide = If(value, 1, 0)
        End Set
    End Property

我使用连接到实体的实体数据源来数据绑定到formview,boolean属性被数据绑定到一个复选框。在更新formview上的记录时,我收到以下错误消息

  

在插入,更新或>删除操作期间,在实体上找不到名为“HideBoolean”的属性。检查以确保指定为绑定表达式的属性可用于数据源。

我已经在setter上添加了一些日志记录,而且没有在更新中点击。

为了测试实体,我尝试在代码中更改记录的boolean属性的值并保存记录,这是有效的。

        Dim a As New Data.PortalEntities
        Dim r As Data.Reports_Reports = a.Reports_Reports.Where(Function(b) b.reportID = reportID).FirstOrDefault
        r.HideBoolean = Not r.HideBoolean
        a.SaveChanges()

表格中的值已成功更改。

编辑:这是我的aspx

中的代码
<asp:EntityDataSource ID="EntityDataSource1" runat="server" ConnectionString="name=PortalEntities" DefaultContainerName="PortalEntities" 
    EnableFlattening="False" EnableUpdate="True" EntitySetName="Reports_Reports" AutoGenerateWhereClause="true">
    <WhereParameters>
        <asp:Parameter DefaultValue="311" Name="reportID" Type="Int32" />
    </WhereParameters>
</asp:EntityDataSource>
<asp:FormView ID="FormView1" runat="server" DataKeyNames="reportID" DataSourceID="EntityDataSource1" DefaultMode="Edit">
    <EditItemTemplate>
        HideBoolean:
        <asp:CheckBox ID="HideBooleanCheckBox" runat="server" Checked='<%# Bind("HideBoolean") %>' />
        <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update" Text="Update" />
        <asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" />
    </EditItemTemplate>
</asp:FormView>

0 个答案:

没有答案