Perché la mia chiave primaria dell'entità mostra di essere modificata dopo l'aggiornamento dell'entità?

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

Domanda

Ho una classe ApplicationUser che eredita da IdentityUser . Ho aggiunto la proprietà LastLoggedIn che è datatype OffsetDateTime e la OffsetDateTime ad ogni richiesta all'API. Inoltre, sto usando Audit da entityframework plus per registrare le operazioni di aggiunta / aggiornamento / cancellazione degli utenti e questo è il modo in cui mi sono imbattuto in questo problema. ogni volta che LastLoggedIn proprietà LastLoggedIn dell'entità ApplicationUser posso vedere che anche la proprietà Id è stata modificata, mostrando lo stesso valore vecchio e nuovo. Perché la mia chiave primaria è stata modificata qui?

Inserisco il codice pertinente,

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

Metodo che chiama l'entità, dal momento che la classe eredita da IdentityUser , sto usando UserManager

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

Ho provato quanto segue ma ottengo un'eccezione

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

L''Id' della proprietà non può essere configurato come 'ValueGeneratedOnUpdate' o 'ValueGeneratedOnAddOrUpdate' perché il valore della chiave non può essere modificato dopo che l'entità è stata aggiunta all'archivio.

Risposta accettata

La proprietà chiave non può essere ignorata dal design.

Questo dovrebbe essere in grado di recuperare quale riga è dietro la modifica. Senza la chiave, non puoi sapere quale ApplicationUser è stato modificato.




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché