处理Linq到SQL视图的CRUD操作

时间:2009-07-07 17:30:14

标签: .net vb.net linq linq-to-sql views

我遇到的问题是,我对来自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事件,取消等等(这是我的临时修复)但我真的想在中心位置捕获所有删除操作,无论我如何删除实体。

1 个答案:

答案 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