unit - repository pattern c# mvc
Marco de entidad: Insertar filas de clave externa cuando se actualiza la tabla (0)
Al utilizar Entity Framework 6 y un patrón de repositorio, intento actualizar una fila, donde la fila existente tiene un nuevo objeto de clave externa asociado. Por ejemplo, ya existe un registro de Person
. La Person
tiene un nuevo Dog
. Entonces ahora la clase Person
tiene una propiedad Dog
instanciada y poblada con datos.
Este es mi método de actualización:
public async Task<TObject> UpdateAsync(TObject updated, int key)
{
if (updated == null)
return null;
var existing = await this._context.Set<TObject>().FindAsync(key);
if (existing != null)
{
this._context.Entry(existing).CurrentValues.SetValues(updated);
}
await this._context.SaveChangesAsync();
return existing;
}
Y lo llamo haciendo lo siguiente:
personRecord.Dog = new Dog () { Name = "Max", Age = 7 };
await this.PersonRepository.UpdateAsync(personRecord, personRecord.Id)
Pero no se está insertando ningún nuevo registro de Dog
en la base de datos. ¿Qué estoy haciendo mal? ¡Gracias por adelantado!