Готовая загрузка - Как я могу обновить сущность, включающую некоторые связанные сущности? - PullRequest
0 голосов
/ 22 мая 2018

У меня есть родительская таблица (из oracle dataBase) и несколько дочерних таблиц, и я могу успешно обновить родительскую сущность, используя метод Update ниже, но не дочерние.

Кстати,я могу использовать с общими объектами здесь?

public void UpdateEnt<T>(T entity) where T : parent_table
{
    if (entity == null)
    {
        throw new ArgumentException("Cannot add a null entity.");
    }

    using (var _context = (DataModelDetach)d.GetContextForRead(Module))
    {
        var entry = _context.Entry<T>(entity);

        if (entry.State == EntityState.Detached)
        {
            var set = _context.Set<T>();
            T attachedEntity = set.Include(x => x.children_1).Include(x => x.children_2).SingleOrDefault(e => e.idSeq == entity.idSeq);  

            if (attachedEntity != null)
            {
                var attachedEntry = _context.Entry(attachedEntity);
                attachedEntry.CurrentValues.SetValues(entity);
            }
            else
            {
                entry.State = EntityState.Modified; // This should attach entity
            }
        }
    }
}
...