限制在Silverlight中更新实体数据模型中的字段

时间:2013-07-29 07:57:13

标签: entity-framework silverlight-5.0 wcf-ria-services

我在数据库“IsActive”中有一个字段,默认为“Null”。现在我想更新一次该字段并将其设置为true。现在,一旦该字段设置为true,我需要禁止对其进行进一步修改。请帮忙!

1 个答案:

答案 0 :(得分:0)

对于RIA Services在实体中创建的每个属性,RIA Services还会创建多个部分方法存根,这些存根将在属性值发生变化时被调用,例如,对于您的IsActive属性,RIA Services生成:

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

    Private Partial Sub OnIsActiveChanged()
    End Sub

您可以在编译时在RIA Services创建的文件中找到这些存根(在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