2016-08-13 3 views
2

Ich frage mich, wie könnte ich Modell Validierung aus der Datenbank machen. zum BeispielEF Modell Validierungswerte aus der Datenbank

Ich habe eine Klasse [StringLength(100)] Attribut Annotationsdaten

Und ich möchte diese Werte ändern dynamische ich meine 100. Ich mache genannt User

Es hat die Eigenschaft public string UserName {get; set;}

Diese Eigenschaft hat wollen Admin-Panel, wo Admin kann zum Beispiel diese Werte von 100 zu wantever ändern, die er zum Beispiel 20 will. Dies ist nur ein Beispiel.

Wie könnte ich das tun?

Ich habe Idee neue Klassen zum Beispiel für jedes Attribut machen StringLenght die

MyOwnclass : StringLength 

So StringLength erbt von ValidationAttribute

In dieser Klasse von ValidationAttribute erbt ich DBContext machen könnte und diese Werte eingelesen überschrieben IsValid Methode. Aber ich weiß nicht, wie lange es dauern würde. Zum Beispiel habe ich eine Registeransicht mit 15 Formulareingaben. Jede Eingabe würde mindestens 1 Anfrage an die Datenbank machen. Leistung könnte schlecht sein?

Ss gibt es eine andere Möglichkeit, diese Werte möglicherweise im Anwendungsspeicher zu speichern? Und aktualisieren Sie es in Admin Controller, wenn er diese Einstellung ändert?

+0

Dies könnte helfen: http://stackoverflow.com/questions/9975535/user-defined-validation. – DWright

Antwort

0

Meine zwei Cent, können Sie die Länge in separaten Tabelle speichern, und ändern Sie es aus dem Admin-Panel. Jedes Mal, wenn Sie einen Benutzer einfügen/aktualisieren, überprüfen Sie diese Variable zuerst. Sie können die gespeicherte Prozedur verwenden oder die Funktion ValidateEntity überschreiben, um den Benutzernamen eines neuen/aktualisierten Benutzers zu überprüfen.

+0

ja, aber ich möchte auch Client-Seite valiadion und ich glaube nicht, es würde so funktionieren. – dwaNaDziesiec

Verwandte Themen