Benutzer mit den meisten Antworten
über Entity-Framework Datensätze bearbeiten

Frage
-
Hallo,
ich möchte über das über Entity-Framework Datensätze verschiedenenr Tabellen bearbeiten.
Muss man da jetzt für das ViewModel alle Klassen quasi neu anlegen und mit den Datensätze aus dem EF referenzieren?
Oder wie macht man das geschickt?
Antworten
-
Hi,
es gibt hier unterschiedliche Ansätze es umzusetzen, wobei es davon Teils drauf ankommt, wie groß dein Projekt ist und welchen Aufwand du Betreiben möchtest. Alles kann ich dir im Detail hier nicht beschreiben das würde den Rahmen des Forums sprengen.
Wenn du es strickt nach MVVM umsetzt, sollte die View nie direkt auf das Modell zugreifen sondern nur auf das VM.Was theoretisch bedeutet, das du dort die Klassen "quasie neu anlegen" musst. Meist umfasst da das VM aber deutlich mehr als das Model. (Ich möchte z.B. den Kunden über eine Dropdown Box vorgegebene Werte zur Auswahl anbieten usw.)
Es kann durch aus Sinnvoll sein, das MVVM Patter nicht strickt umzusetzen, um sich das "neu anlegen" zu Sparen. Wenn du z.B. eine Listen Ansicht hast, die eine 1 zu 1 Darstellung der DB Tabelle ist. Lohnt es sich nicht unbedingt alles 1 zu 1 nach zu Programmieren.
In den meisten Fällen ist es aber so, das die (SQL) DB eine Relationale Darstellung ist. EF macht da im vereinfacht gesagt nichts anderes als sie auf eine Objekt/Relationale Darstellung zu Mappen (O/R Mapper). In vielen fällen möchte man aber lieber eine reine Objekt Orientierte Struktur haben. So das man hingeht die EF noch mal auf ein Objekt zu Mappen. Und dann mit diesem Objekt weiter Arbeitet.
Für den Datenbank zugriff wird oft das Repositoty Pattern eingesetzt. Was man sich auch mal anschauen kann ist das Prisem Framework von Microsoft. Das Framework muss man nicht unbedingt verwenden (da gibt es teilweise elegantere Lösungen), dort werden aber viele Pattern beschrieben, die man in eine Anwendung gebrauchen kann. Wenn du möchtes kannst du dir auch das Buch über Anwendungs Entwicklung mit MVVM kaufen.
MFG
Palin
- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Montag, 2. Oktober 2017 11:37
- Als Antwort markiert Ivan DragovMicrosoft contingent staff, Moderator Montag, 9. Oktober 2017 12:00
-
Hi,
ergänzend zu Palin's Antwort ist auch ein Zwischenweg möglich. In einem separaten Teil (z.B. Projekt) legst Du die Definitionen für das Objektmodel an (internes Datenmodel), welches Du in allen Teilen Deines Projektes nutzt. Die Views kennen nur die Datendeklarationen und die ViewModels, die ViewModels kennen nur die Datendeklarationen und die Models und die Models kennen nur die Datendeklaration. Damit hast Du eine Unabhängigkeit der Views von den Models. Beide nutzen aber teilweise die gleichen Klassen, in denen die Struktur des im Programm genutzten Datenmodels beschrieben ist.--
Viele Grüsse
Peter Fleischer (ehem. MVP)
Meine Homepage mit Tipps und Tricks- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Montag, 2. Oktober 2017 11:37
- Als Antwort markiert Ivan DragovMicrosoft contingent staff, Moderator Montag, 9. Oktober 2017 12:00
Alle Antworten
-
Hi,
es gibt hier unterschiedliche Ansätze es umzusetzen, wobei es davon Teils drauf ankommt, wie groß dein Projekt ist und welchen Aufwand du Betreiben möchtest. Alles kann ich dir im Detail hier nicht beschreiben das würde den Rahmen des Forums sprengen.
Wenn du es strickt nach MVVM umsetzt, sollte die View nie direkt auf das Modell zugreifen sondern nur auf das VM.Was theoretisch bedeutet, das du dort die Klassen "quasie neu anlegen" musst. Meist umfasst da das VM aber deutlich mehr als das Model. (Ich möchte z.B. den Kunden über eine Dropdown Box vorgegebene Werte zur Auswahl anbieten usw.)
Es kann durch aus Sinnvoll sein, das MVVM Patter nicht strickt umzusetzen, um sich das "neu anlegen" zu Sparen. Wenn du z.B. eine Listen Ansicht hast, die eine 1 zu 1 Darstellung der DB Tabelle ist. Lohnt es sich nicht unbedingt alles 1 zu 1 nach zu Programmieren.
In den meisten Fällen ist es aber so, das die (SQL) DB eine Relationale Darstellung ist. EF macht da im vereinfacht gesagt nichts anderes als sie auf eine Objekt/Relationale Darstellung zu Mappen (O/R Mapper). In vielen fällen möchte man aber lieber eine reine Objekt Orientierte Struktur haben. So das man hingeht die EF noch mal auf ein Objekt zu Mappen. Und dann mit diesem Objekt weiter Arbeitet.
Für den Datenbank zugriff wird oft das Repositoty Pattern eingesetzt. Was man sich auch mal anschauen kann ist das Prisem Framework von Microsoft. Das Framework muss man nicht unbedingt verwenden (da gibt es teilweise elegantere Lösungen), dort werden aber viele Pattern beschrieben, die man in eine Anwendung gebrauchen kann. Wenn du möchtes kannst du dir auch das Buch über Anwendungs Entwicklung mit MVVM kaufen.
MFG
Palin
- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Montag, 2. Oktober 2017 11:37
- Als Antwort markiert Ivan DragovMicrosoft contingent staff, Moderator Montag, 9. Oktober 2017 12:00
-
Hi,
ergänzend zu Palin's Antwort ist auch ein Zwischenweg möglich. In einem separaten Teil (z.B. Projekt) legst Du die Definitionen für das Objektmodel an (internes Datenmodel), welches Du in allen Teilen Deines Projektes nutzt. Die Views kennen nur die Datendeklarationen und die ViewModels, die ViewModels kennen nur die Datendeklarationen und die Models und die Models kennen nur die Datendeklaration. Damit hast Du eine Unabhängigkeit der Views von den Models. Beide nutzen aber teilweise die gleichen Klassen, in denen die Struktur des im Programm genutzten Datenmodels beschrieben ist.--
Viele Grüsse
Peter Fleischer (ehem. MVP)
Meine Homepage mit Tipps und Tricks- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Montag, 2. Oktober 2017 11:37
- Als Antwort markiert Ivan DragovMicrosoft contingent staff, Moderator Montag, 9. Oktober 2017 12:00