¿Por qué la clave principal de mi entidad muestra la modificación después de actualizar la entidad?

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

Pregunta

Tengo una clase ApplicationUser que hereda de IdentityUser . LastLoggedIn la propiedad LastLoggedIn que es el tipo de datos OffsetDateTime y la OffsetDateTime con cada solicitud a la API. Además, estoy usando Audit from entityframework plus para registrar las operaciones de agregar / actualizar / eliminar de los usuarios y así es como me topé con este problema. cada vez que actualizo la propiedad LastLoggedIn la entidad ApplicationUser puedo ver que la propiedad Id se ha modificado, mostrando el mismo valor antiguo y nuevo. ¿Por qué mi clave principal está siendo modificada aquí?

Estoy publicando el código correspondiente,

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

Método que llama a la entidad, ya que la clase se hereda de IdentityUser , estoy usando UserManager

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

Intenté lo siguiente pero obtengo una excepción,

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

La propiedad 'Id' no se puede configurar como 'ValueGeneratedOnUpdate' o 'ValueGeneratedOnAddOrUpdate' porque el valor de la clave no se puede cambiar después de que la entidad se haya agregado al almacén.

Respuesta aceptada

La propiedad clave no puede ser ignorada por el diseño.

Se debe poder recuperar qué fila está detrás del cambio. Sin la clave, no puede saber qué ApplicationUser ha sido modificado.




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué