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 アクション) という部分的なメソッドが必要です。それはあなたが探しているものかもしれません。

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 に答える