/ / Cómo cambiar la clave externa en Entity Framework - entity-framework, ef-model-first

Cómo cambiar la clave externa en Entity Framework - Entidad-marco, ef-model-first

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 № 1

Cambiar la clave foránea entonces

db.Entry(person).State=EntityState.Modified

antes de

db.SaveChanges();