Linq To SQL - DeleteRule funzt nicht

27/06/2008 - 12:44 von Rafael G. | Report spam
Hallo NG,

ich spiele gerade bissl mit Linq To SQL rum.
Ich habe bspw. eine 1:1-Beziehung zwischen einer Person und einer
Aenderungstabelle (merke mir hier das Änderungsdatum + Benutzer).
Jetzt will ich, dass wenn die Person gelöscht wird, der dazugehörige
Änderungs-Datensatz gelöscht wird.

Die Eigenschaft bei der Person sieht folgendermass aus:

[Association(Name="BemerkungsTypenErfasst", Storage="m_Erfasst",
ThisKey="BtErfasstNR", IsForeignKey=true, DeleteRule="Cascade",
DeleteOnNull=true)]
public Aenderung Erfasst
{...}

Leider kriege ich es nicht hin, dass der Änderungsdatensatz mit gelöscht
wird. Jedesmal wird bloss der Personen-DS gelöscht.
Ich könnte es natürlich von der DB erledigen lassen mittels einer SPROC
oder Trigger, wills aber sehen, dass es auch Linq To SQL macht.

vg
Rafael
 

Lesen sie die antworten

#1 Elmar Boye
27/06/2008 - 16:41 | Warnen spam
Hallo Rafael,

Rafael G. schrieb:
ich spiele gerade bissl mit Linq To SQL rum.
Ich habe bspw. eine 1:1-Beziehung zwischen einer Person und einer
Aenderungstabelle (merke mir hier das Änderungsdatum + Benutzer).
Jetzt will ich, dass wenn die Person gelöscht wird, der dazugehörige
Änderungs-Datensatz gelöscht wird.

Leider kriege ich es nicht hin, dass der Änderungsdatensatz mit gelöscht
wird. Jedesmal wird bloss der Personen-DS gelöscht.



Das automatische Löschen wird von Linq nicht unterstützt:
<URL:http://msdn.microsoft.com/de-de/lib...5.aspx>

Ich könnte es natürlich von der DB erledigen lassen mittels einer SPROC
oder Trigger, wills aber sehen, dass es auch Linq To SQL macht.



Also entweder eines der Codebeispiele dort anpassen...

Besser aber in der Datenbank festlegen, dabei ist am besten
einen Fremdschlüssel zu nutzen (FOREIGN KEY ON DELETE CASCADE),
anstatt Trigger/Prozedur.

Gruß Elmar

Ähnliche fragen