2017-07-10 2 views
2

Was ich tun möchte, ist einen Primärschlüssel zu erstellen, die automatische Abnahme hat:DataAnnotation zum Erstellen von benutzerdefinierter Autoinkrement (oder Auto-Dekrement) Identität

Id BIGINT PRIMARY KEY IDENTITY(-1,-1) 

ich danach gesucht, und ich konnte nur die folgende DataAnnotation finden zur Einstellung der Identität:

Dies erfüllt jedoch nicht meine Notwendigkeit, Anfangs- und Inkrementwerte zu setzen. Und wenn ich will, um 1 zu erhöhen, und ab 1 tatsächlich Folgenden, dass ich immer funktioniert für mich verwenden:

[Key] 
    public long Id { get; set; } 
+0

Warum nicht ein * Custom Data Annotation Validatoren mit * und Ihre Lieblings-Logik dort schreiben? –

+0

@ S.Akbari Nun, ich habe in Annotation Validators nachgeschaut, aber dies erlaubt mir nur, eine benutzerdefinierte Validierung zu erstellen, wie kann ich sagen, dass ich die Id automatisch verkleinern soll anstatt sie zu erhöhen? –

Antwort

0

Hallo Sie können diese Ausgabe erreichen, indem er mit der Datenbankinitialisierung oder Migration

Es gibt keine direkte Möglichkeit, dies in Code First zu implementieren. Also, für die Verwendung einer dieser Optionen, müssen Sie

die DB-Initialisierung anpassen: Dies wird durch die Implementierung Ihrer eigenen Datenbank Initialisierungsklasse und führen Sie die gewünschten SQL-Befehle von den Seed-Methoden (suchen Sie die Implementierung von öffentlichen Klasse MyInitializer im verlinkten Artikel)

oder eine Migration anzupassen: Sie jeden SQL-Befehl in dem Up() oder Down() -Methode der Migration ausführen können

Quelle: https://stackoverflow.com/a/23964887/3397630

Bitte schauen Sie sich die obige URL an, die der Fragesteller kommentierte, dass durch die Verwendung der obigen Technik das Problem gelöst werden könnte. also hoffe, es wird auch für dich nützlich sein.

Dank

Karthik

Verwandte Themen