Usando Entity Framework no puedo hacer que la clave foránea cambie cuando lo hago db.SaveChanges()
.
En el siguiente ejemplo, "Saludo" es una clave foránea en el modelo de "persona".
Por ejemplo, si es actualmente {"Id":2,"Name":"Mrs"}
, si paso {"Id":3,"Name":"Mr"}
, que ya existe, no cambiará, aunque si paso {{"Id":3,"Name":"Random"}
, cambiará y también actualizará la clave externa. Solo cambiará si ha habido cambios reales en los datos contenidos en lugar de solo la clave externa.
db.Entry(person.FirstName).State = EntityState.Modified;
db.Entry(person.LastName).State = EntityState.Modified;
db.Entry(person.Salutation).State = EntityState.Modified;
try
{
db.SaveChanges();
}....
En este caso, "persona" se está transmitiendo en algo como esto:
{"FirstName": "Anne", "LastName": "Other","Salutation":{"Id":2,"Name":"Mrs"}}
Cualquier ayuda sería muy apreciada ya que he estadoAtascado en esto durante meses y mi publicación anterior no ha tenido ninguna respuesta útil. Consulte también esta publicación para obtener más detalles sobre la primera estructura de base de datos del modelo, etc.
Entity Framework: no se actualiza el modelo referenciado
Respuestas
0 para la respuesta № 1Cambiar la clave foránea entonces
db.Entry(person).State=EntityState.Modified
antes de
db.SaveChanges();