Hallo,
ich habe Probleme damit Entitäten in meiner Software zu löschen, da diese recht stark verknüpft sind.
Wenn ich z.B. eine Vorlage lösche, dann muss auch das dazugehörige layout, die LayoutPositionen dieses Layouts und das Dokument soll zwar nicht gelöscht werden, aber das Layout und die Vorlage soll auf null gehen.
Wenn ich z.B. ein Feld lösche, dann soll das DokumentenFeld das dieses Feld beinhaltet auf null gehen usw.... muss ich das alles per Hand programmieren, oder hilft mir da EF?
Mir ist klar, dass es cascade delete gibt, aber ich möchte ja nicht immer alles gleich löschen, sondern verschiedene "operationen" vornehmen mal löschen, mal den FK auf null setzten usw...
Ich habe folgende Models:
ich habe Probleme damit Entitäten in meiner Software zu löschen, da diese recht stark verknüpft sind.
Wenn ich z.B. eine Vorlage lösche, dann muss auch das dazugehörige layout, die LayoutPositionen dieses Layouts und das Dokument soll zwar nicht gelöscht werden, aber das Layout und die Vorlage soll auf null gehen.
Wenn ich z.B. ein Feld lösche, dann soll das DokumentenFeld das dieses Feld beinhaltet auf null gehen usw.... muss ich das alles per Hand programmieren, oder hilft mir da EF?
Mir ist klar, dass es cascade delete gibt, aber ich möchte ja nicht immer alles gleich löschen, sondern verschiedene "operationen" vornehmen mal löschen, mal den FK auf null setzten usw...
Ich habe folgende Models:
C#-Quellcode
- public class Vorlage
- {
- public int Id { get; set; }
- public Layout Layout { get; set; }
- }
- public class Layout
- {
- public int Id { get; set; }
- public ICollection<LayoutPosition> LayoutPositionen { get; set; }
- public Vorlage Vorlage { get; set; }
- }
- public class LayoutPosition
- {
- public int Id { get; set; }
- public Feld Feld { get; set; }
- public Layout Layout { get; set; }
- }
- public class Feld
- {
- public int Id { get; set; }
- public virtual ICollection<Text> Texte { get; set; }
- }
- class Dokument
- {
- public int Id { get; set; }
- public Layout Layout { get; set; }
- public Vorlage Vorlage { get; set; }
- public virtual ICollection<DokumentenFeld> DokumentenFelder { get; set; }
- }
- class DokumentenFeld
- {
- public int Id { get; set; }
- public Dokument Dokument { get; set; }
- public Feld Feld { get; set; }
- public int ItemId { get; set; }
- }