Ich entwerfe grad das Design für eine kleine Anwendung. Dabei wollte ich folgendes umsetzen und muss mich fragen: Geht das überhaupt?
Was möchte ich: Ich habe eine Entität "Artikel". Diese soll einen Unterentität "Lager" haben. In der kann ich den Lagerplatz (Schrank, Fach, Schublade) ablegen.
Nun werden aber nicht alle Artikel abgelegt. Für manche brauch ich gar keinen Lagerplatz.
Wenn ich aber an meine WPF/MVVM-Anwendung die Eigenschaften für Schrank, Fach und Schublade binden will, dann geht es ja nur, wenn ich die Entität "Lager" erzeugt habe.
Frage: Wie stelle ich es an, dass erst dann, wenn ich z.B. einen Wert in Schrank, Fach oder Schublade schreibe, dass dann auch erst eine Entität "Lager" erzeugt wird? Wie könnte ich es anstellen, dass die Entität "Lager" wieder gelöscht wird, wenn alles auf "0" geschrieben wird? Ist das alles eher eine Aufgabe von "Model" oder dem "ViewModel"?
Zunächst erkläre bitte das Entity Modell exakt. Kann sein dass ich deine Beschreibung mißverstanden habe und dass du etwas anderes machen willst, aber in einer typischen Lageranwendung sieht das Datenmodell eher so aus:
(dass du sagst, dass ein "Artikel" eine Unterentität "Lager" enthält, verwirrt mich in diesem Zusammenhang in deinem Post etwas)
Wenn das Model eine Logik enthält, ist das sicher dort zu kapseln und nicht im View-Model. Falls du z.B. einen Standard-Lagerplatz erstellen willst, wenn ein Lager erstellt wird, dann ist das alles Logik der Entität und sollte da gekapselt sein. Aber wie gesagt, erkläre doch noch mal was du genau machen willst.
Wie könnte ich es anstellen, dass die Entität "Lager" wieder gelöscht wird, wenn alles auf "0" geschrieben wird
Das klingt mir sehr Datenbank-nah gedacht. Ich denke der Vorteil vom EF liegt darin, immer im Hinfügen von Objekt-Beziehungen zu denken und nie in irgendwelchen Fremdschlüssel-IDs oder Flags.