整数プロパティ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
フォームビューにデータバインドするためにエンティティに接続されたエンティティ データ ソースを使用しています。ブール値のプロパティはチェックボックスにデータバインドされています。フォームビューでレコードを更新すると、次のエラー メッセージが表示されます
挿入、更新、または削除操作中にエンティティで「HideBoolean」という名前のプロパティが見つかりませんでした。>バインド式として指定されたプロパティがデータ ソースで使用可能であることを確認してください。
セッターにいくつかのログを記録しましたが、これは更新時にヒットしていません。
エンティティをテストするために、コードでレコードのブール値プロパティの値を変更してレコードを保存しようとしましたが、これは機能します。
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>