2

我遇到了一个问题,即我对源自 SQL 视图的实体的 CRUD 操作没有为所述操作调用生成的方法。

例子:

我在连接到 LinqDataSource 的项目上的 ListView 中按“删除”。它会抛出一个错误,指出它无法执行该操作,因为它会影响多个基表。没关系,我明白了。我不明白的是为什么这段代码不能在插入/删除时运行:

Public Partial Class Entity

Private Sub DeleteEntity(instance as Entity)
    Throw New Exception("TEST")
End Sub

End Class

在调试中,它不会中断该方法,因此它不会被调用。我什至做了一个测试,我通过附加/DeleteOnSubmit 删除了实体,但仍然不行。这是一个错误还是我没有处理正确的方法?

注意:是的,我可以处理数据源的 OnDeleting 事件、取消等(这是我的临时修复),但我真的很想在一个中心位置捕获所有删除操作,无论我如何删除实体。

4

1 回答 1

0

您的实体上应该有一个名为 OnValidate(System.Data.Linq.ChangeAction action) 的部分方法。处理这可能是您正在寻找的。

Private Partial Sub OnValidate(action As System.Data.Linq.ChangeAction)
    If action = System.Data.Linq.ChangeAction.Delete
        Throw New Exception("TEST")
    End If
End Sub
于 2009-07-07T18:47:31.400 回答