Implementieren von Standardwerten in einem Modell

7

In einer C # MVC-Anwendung habe ich ein Model, Customer, das aus der Datenbank abgerufen oder als neues erstellt werden kann.

Wenn ich einen neuen Kunden erstelle, was ist der richtige Weg, um Standardwerte festzulegen (z. B. CusotmerLevel-Standardwerte auf 1)?

Sollte ich verschiedene Konstruktoren für einen neuen Mitarbeiter und einen Mitarbeiter haben, die aus der Datenbank oder auf andere Weise abgerufen wurden?

    
A Bogus 09.04.2013, 12:28
quelle

6 Antworten

15

Angenommen, es handelt sich um ein POCO, habe ich immer festgestellt, dass der Konstruktor für die Festlegung von Standardwerten geeignet ist. Normalerweise nutze ich diese Gelegenheit, Dinge wie CreatedDate zu deklarieren. Wenn sie aus der Datenbank abgerufen werden, werden die öffentlichen Eigenschaften sowieso durch die Datenbankwerte überschrieben.

%Vor%

Aktualisieren

Und wenn Sie C # 6.0 verwenden, lesen Sie auto-property initializers :

%Vor%     
Brad Christie 09.04.2013, 12:30
quelle
2

Benutze den Standardkonstruktor , alle ORMs, die ich ausprobiert habe, setzen Werte, nachdem der Konstruktor ausgeführt wurde, damit er nicht stört.

Eine alternative Methode wäre:

%Vor%     
AlexanderBrevig 09.04.2013 12:30
quelle
2

Sie können das Muster Factory verwenden, um einen neuen Kunden zu erstellen. Auf diese Weise können Sie der Factory die Verantwortung für die Einstellung der korrekten Standardwerte geben.

Wenn nicht verwendbar, würde ich es im Standardkonstruktor setzen.

    
JMan 09.04.2013 12:30
quelle
2

Im Konstruktor ist in Ordnung, und Sie können Standardwerte auch als Argumente im Konstruktor angeben, wie oben erwähnt.

Wenn Sie jedoch Nullable-Werte verwenden, die meiner Meinung nach bei der ersten Arbeit mit Modell-Datenbanken sehr hilfreich sind, können Sie auch Folgendes verwenden:

%Vor%

Dies sollte immer den Datenbankwert angeben, es sei denn, es ist kein Datenbankwert vorhanden. Wenn das neue Objekt jedoch in der Datenbank beibehalten wird, sollte es ab diesem Zeitpunkt den Standardwert in der Datenbank haben.

    
Arwin 11.06.2014 22:58
quelle
1

Sie sollten ein Viewmodel für die neue Ansicht erstellen

so können Sie es so machen:

%Vor%     
Omu 09.04.2013 12:30
quelle
1

Verwenden Sie einen allgemeinen Konstruktor zum Erstellen neuer Mitarbeiter und Abrufen der vorhandenen Mitarbeiter.

Verwenden Sie für Standardwerte optionale Argumente.

Ссылка

    
SMS 09.04.2013 12:39
quelle

Tags und Links