Warum zeigt mein Primärschlüssel für die Entität nach der Aktualisierung der Entität Änderungen an?

asp.net-core asp.net-identity entity-framework-core entity-framework-plus

Frage

Ich habe eine Klasse ApplicationUser , die von IdentityUser erbt. Ich habe die Eigenschaft LastLoggedIn das ist OffsetDateTime Datentyp und ich es auf die API mit jeder Anforderung ändern. Außerdem verwende ich Audit von entityframework plus, um Benutzer hinzuzufügen, zu aktualisieren / zu löschen, und auf diese Weise bin ich auf dieses Problem gestoßen. Jedes Mal, wenn ich die LastLoggedIn Eigenschaft der ApplicationUser Entität LastLoggedIn kann ich sehen, dass die Id Eigenschaft ebenfalls geändert wurde und denselben alten und neuen Wert LastLoggedIn . Warum wird mein Primärschlüssel hier geändert?

Ich poste den relevanten Code,

public class ApplicationUser : IdentityUser {
        [Required, StringLength(50)]
        [Display (Name = "First Name")]
        public string FirstName { get; set; }
        public OffsetDateTime? LastLoggedIn { get; set; }
}

Methode, die die Entität aufruft, da die Klasse von IdentityUser erbt, verwende ich UserManager

public class ApplicationUser : IdentityUser {
        [Required, StringLength(50)]
        [Display (Name = "First Name")]
        public string FirstName { get; set; }
        public OffsetDateTime? LastLoggedIn { get; set; }
}

Ich habe Folgendes versucht, aber ich bekomme eine Ausnahme,

public class ApplicationUser : IdentityUser {
        [Required, StringLength(50)]
        [Display (Name = "First Name")]
        public string FirstName { get; set; }
        public OffsetDateTime? LastLoggedIn { get; set; }
}

Die Eigenschaft 'Id' kann nicht als 'ValueGeneratedOnUpdate' oder 'ValueGeneratedOnAddOrUpdate' konfiguriert werden, da der Schlüsselwert nicht geändert werden kann, nachdem die Entität dem Geschäft hinzugefügt wurde.

Akzeptierte Antwort

Die Schlüsseleigenschaft kann nicht vom Design ignoriert werden.

Das ist in der Lage zu ermitteln, welche Zeile hinter der Änderung steht. Ohne den Schlüssel können Sie nicht wissen, welcher ApplicationUser geändert wurde.




Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum