Ich stoße auf ein Problem, bei dem meine CRUD-Operationen für eine aus einer SQL-Ansicht stammende Entität die generierten Methoden für diese Operationen nicht aufrufen.Umgang mit CRUD-Operationen für eine Linq-SQL-Ansicht
Beispiel:
Ich drücke "Löschen" in einem Listview auf ein Element, mit einem LinqDataSource verbunden. Es wird ein Fehler ausgegeben, der besagt, dass der Vorgang nicht ausgeführt werden kann, da er sich auf mehrere Basistabellen auswirkt. Das ist in Ordnung, das verstehe ich. Was ich nicht verstehe ist, warum dieser Code nicht auf Insert ausführen/löschen:
Public Partial Class Entity
Private Sub DeleteEntity(instance as Entity)
Throw New Exception("TEST")
End Sub
End Class
In debug, es wird nicht auf der Methode brechen, so ist es nicht genannt zu werden. Ich habe sogar einen Test gemacht, bei dem ich die Entität gelöscht habe, indem ich/DeleteOnSubmit angefügt habe und immer noch nicht gehe. Ist das ein Fehler oder behandle ich nicht die richtige Methode?
Hinweis: Ja, ich kann das OnDeleting-Ereignis einer Datenquelle verarbeiten, abbrechen usw. (was meine vorläufige Fehlerbehebung ist), aber ich möchte wirklich ALLE Löschvorgänge an einem zentralen Ort abfangen, egal wie ich die Entität lösche .
Danke, das funktioniert, wenn auch nicht so groß wie das Überschreiben der verschiedenen CRUD-Aktionen wäre. Es wird, denke ich. – kamranicus
Ja, es wäre schöner, die ChangeAction nicht testen zu müssen, aber das war das nächste, was ich finden konnte, das mehr oder weniger so funktionieren würde, wie du es gerne hättest. –
Ich verwendete auch benutzerdefinierte gespeicherte Prozeduren, die CUD-Operationen ausführen, da dies besser funktionierte und diese Operationen sowohl von LinqDataSource-Steuerelementen als auch von programmatischen Operationen behandelt wurden. – kamranicus