Fragensteller
MVC C# DataAnnotations in Model beibehalten

Allgemeine Diskussion
-
Hallo Forum,
ich nutze in den Models die DataAnnotations
leider weden alle Einträge entfernt wenn ich "Model aus der Datenbank aktuallisieren ... " ausführe.
Kann ich das irgendwie verhindern ?
Gruß Roland
- Typ geändert Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 7. Januar 2019 12:04 Keine bestätigte Lösung
Alle Antworten
-
Hi Roland,
mir ist nicht bekannt, woher die DataAnnotations kommen sollen, wenn man die Klasse neu erstellt (d.h. löscht und neu anlegt). Ich verstehe auch nicht, warum man so etwas benötigt. Die Datenklasse beschreibt Datenobjekte im Geschäftsprozess. Die Breite (Anzahl der Eigenschaften) und Tiefe (Anzahl der Datenobjekte) innerhalb der Anwendung betreffen nur Teile des Inhaltes der externen Datenbank. Außerdem bedeutet jede Änderung der Datenklasse eine oft umfangreiche Überarbeitung des gesamten Projektes, da Bezeichner nach einer Aktualisierung der Datenklasse entfallen, hinzukommen und auch von einem anderen Typ sein können. Wenn die Notwendigkeit besteht, das Datenmodel zu ändern, so ist das üblicherweise das Ergebnis einer Änderung des zu implementierenden Geschäftsmodels. Aus den neuen Anforderungen an den Geschäftsprozess wird das neue Datenmodell abgeleitet, dann ggf. die Datenbank geändert, dann die Datenklassen geändert und zum Schluss die neue Geschäftslogik implementiert. Falls die Änderungen jedoch aus Änderungen in der Datenbank resultieren, weil die Datenbank auch in anderen Geschäftsprozessen genutzt wird, dann sind nach meiner Erfahrung die Änderungen in den Datenklassen so gering, dass dieser Aufwand vernachlässigbar gegenüber dem Aufwand ist, der danach noch für die Implementierung aller weitere3n Änderungen erforderlich ist.--
Viele Grüsse
Peter Fleischer (ehem. MVP für Developer Technologies)
Meine Homepage mit Tipps und Tricks -
Hallo Peter,
es muss ja nicht immer gleich ein kpl. Änderung sein. Manchmal kommt auch einfach nur ein Tabelle hinzu die neue Funktionen ermöglicht. ZB. Das Speichern von Dokumenten zu einem Vorgang.
Wenn man einen neun Controller anlegt und dazu MVC 5 -Controllermit Ansichten unter Verwendung von EntityFramework benutz, dann sie die View so aus.
Beispiel :
<dt> @Html.DisplayNameFor(model => model.DEB_KDNr) </dt> <dd> @Html.DisplayFor(model => model.DEB_KDNr) </dd>
und dann wird ja genau der Display Name ausgegeben. Das ist doch ganz praktisch oder nicht.
Wie machst Du das mit der Beschreibung der Ausgabe oder Eingabefelder in der Maske.
Gruß Roland
-
Hi Roland,
ich nutze die Erzeugung des Models aus der Datenbank praktisch nicht. Ich erzeuge selbst die Datenklassen für das Datenmodell, welches ich in der Anwendung benötige. Dabei achte ich lediglich auf die Bezeichner der Klassen und Eigenschaften. Die Datenklassen im Projekt haben ja nur einen Bruchteil dessen, was in der Datenbank liegt. Warum soll ich mir über den Automatismus alles reinholen? Wenn ich jetzt 5 Datenklassen mit jeweils 10 Eigenschaften erstelle, benötige ich ca. 1 h. Eine neue Datenklasse zu erstellen, dauert auch nur wenig Zeit im Verhältnis zur Nutzung der Eigenschaften inn der Logik und Oberfläche. Wenn ich die Datenklasse erstelle, füge ich auch gleich die Displaynamen und weiteren Attribute hinzu.
--
Viele Grüsse
Peter Fleischer (ehem. MVP für Developer Technologies)
Meine Homepage mit Tipps und Tricks- Bearbeitet Peter Fleischer Sonntag, 16. Dezember 2018 17:48
-
Hi,
das interessiert mich auch, wie man MetadataType in net.core 2.2 integriert.--
Viele Grüsse
Peter Fleischer (ehem. MVP für Developer Technologies)
Meine Homepage mit Tipps und Tricks