我遇到的问题是,我对来自SQL View的实体的CRUD操作没有调用所生成的操作方法。
示例:
我在项目的ListView中按“删除”,连接到LinqDataSource。它会抛出一个错误,说它无法执行操作,因为它会影响多个基表。那很好,我理解。我不明白为什么这段代码不会在插入/删除时运行:
Public Partial Class Entity
Private Sub DeleteEntity(instance as Entity)
Throw New Exception("TEST")
End Sub
End Class
在调试中,它不会破坏方法,因此不会被调用。我甚至做了一个测试,我通过附加/ DeleteOnSubmit删除了实体,但仍然没有去。这是一个错误还是我没有处理正确的方法?
注意:是的,我可以处理数据源的OnDeleting事件,取消等等(这是我的临时修复)但我真的想在中心位置捕获所有删除操作,无论我如何删除实体。
答案 0 :(得分:0)
您的实体应该有一个名为OnValidate的部分方法(System.Data.Linq.ChangeAction操作)。处理可能正是您正在寻找的东西。
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