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?
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.
Und wenn Sie C # 6.0 verwenden, lesen Sie auto-property initializers :
%Vor%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%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.
Tags und Links asp.net-mvc c#