0

デフォルトで「Null」であるデータベース「IsActive」にフィールドがあります。ここで、フィールドを一度更新して true に設定したいと思います。フィールドが true に設定されたら、それ以上の変更を禁止する必要があります。助けてください!

4

1 に答える 1

0

RIA サービスは、エンティティで作成する各プロパティに対して、オーバーライドするためにプロパティ値が変更されたときに呼び出されるいくつかの部分的なメソッド スタブも作成します。たとえば、IsActive プロパティの場合、RIA サービスは以下を生成します。

    Private Partial Sub OnIsActiveChanging(ByVal value As Boolean)
    End Sub

    Private Partial Sub OnIsActiveChanged()
    End Sub

これらのスタブは、RIA サービスがコンパイル時に作成するファイル (Silverlight プロジェクト フォルダーの Generated_Code フォルダーにあります。プロジェクト自体には含まれません) にあります。

変更を「キャンセル」する方法はありませんが、エンティティの部分クラスなどで、自分で値を設定するロジックを少し追加できます。

    Private _setBackToTrue As Boolean

    Private Sub OnIsActiveChanging(ByVal value As Boolean)
        If Not value AndAlso Me.IsActive Then
            _setBackToTrue = True
        End If
    End Sub

    Private Sub OnIsActiveChanged()
        If _setBackToTrue Then
            Me.IsActive = True
            _setBackToTrue = False
        End If
    End Sub
于 2013-08-04T21:22:45.183 に答える