Wir müssen ein Programm erstellen, das Runsheets und andere Formulardaten sammelt.Wie speichere ich ungültige Daten?
Alle Formulare müssen so gespeichert werden, wie sie eingegeben werden. Wenn sie nicht explizit verworfen werden, sind auch die Formularfelder ungültig.
Der Benutzer sollte immer in der Lage sein, "Für später zu speichern" oder einfach sein Fenster zu schließen, und Daten sollten gespeichert werden.
Das Problem ist, ich muss alle RunSheets indiziert und durchsuchbar, einschließlich der ungültigen.
Ich bin auf einige Optionen suchen:
- Haben Sie eine Unterklasse des gleichen Typs, die die Validierung implementiert (wird das?)
- die ungültigen Einträge als XML serialisiert und speichern Sie es woanders, bis es wird validiert und dauerhaft gespeichert.
- Verwenden Sie keine Validierungsattribute, sondern nur benutzerdefinierte Validierung (dh
IValidatableObject
Schnittstelle), die Validierung umgehen wird, wenn eine andere Eigenschaft im Datensatz angibt, dass die Validierung übersprungen werden sollte, aber dann könnte ich mit einer Menge Daten in der Datenbank enden in der gleichen Tabelle, vielleicht ist das kein Problem, solange ich die Kontrolle habe. Ich denke wirklich über diese Option am meisten nach.
habe ich wirklich Zweifel:
- Wenn ich Daten an anderer Stelle zu speichern, ist die Suche wird ein Alptraum
- Wenn ich die Validierung in einem externen Laufzeitverfahren machen, ist die Verwendung der Validierung zu vermeiden Attribute, die Spalten in der Datenbank spiegeln nicht die Anforderungen an die tatsächlichen Eigenschaften (dh die erforderlichen Felder) wider.
Ich glaube, ich für diese Option gehen werde, weil zwei Tabellen suchen, die mich mehr stört, und auch, weil in der Tat die Spalten nicht so streng sein, aber ich kann so eingestellt noch ihre MaxLength
und einige andere lebenswichtige Eigenschaften, die für die Datenbankstruktur wichtig sind, aber den Validierungsprozess nicht wirklich stören.
Wirklich ist es nicht, dass ich eine datetime als Zeichenkette speichern oder so niedrig gehen muss.
Ich wollte nur von Leuten hören, die in einer ähnlichen Situation konfrontiert und könnte einige glatte magische Methode haben ...
Ich werde für die zweite Option gehen – Sherlock
Aber es muss in den Suchergebnissen enthalten sein. Nervensäge. – Shimmy
Können Sie eine "finalisieren" Bühne einrichten? Setzen Sie zum Beispiel ein boolesches "Final" und wenn es wahr ist, gehen Sie für die stringente Validierung? –