#c# #entity-framework #entity-framework-core #linq-to-entities
Вопрос:
Я пытаюсь скопировать родительский объект и добавить его в свою базу данных. Для этого я обновляю родительский объект новым первичным ключом, но также хочу обновить этот первичный ключ, который отражается как внешний ключ в связанных с ним объектах, и первичные ключи каждого из этих связанных объектов.
Я могу обновить первичный ключ родительского объекта, но есть ли способ эффективно перебирать каждый связанный объект, чтобы также изменить соответствующие поля, чтобы я мог успешно сохранить эти данные в своей базе данных?
Я включил код, в котором я могу обновить свой исходный родительский объект как новый объект.
originalObject.Entry(originalProject).State = EntityState.Detached;
if (originalObject.GetType().GetProperty("Id") != null)
{
var key = Guid.NewGuid().ToString();
// OriginalId represents the foreign key that maps to the originalObject
originalProject.GetType().GetProperty("OriginalId").SetValue(originalProject, key);
}
db.AddAsync(originalObject);
db.SaveChanges();