Обновление родительской сущности без изменения дочерних - PullRequest
1 голос
/ 13 января 2020

У меня отношения один ко многим ... Я работаю в веб-среде (автономная среда). Представьте, что пользователь хочет обновить только родительскую сущность, не загружая все дочерние сущности, это возможно?

Это код:

public class Parent
{
    public int Id { get; set; }

    public string Description { get; set; }

    public ICollection<Child> Children { get; set; }
}

public class Child
{
    public int Id { get; set; }

    public int ParentId { get; set; }

    public Parent Parent { get; set; }

    public string Data { get; set; }
}

Я хочу обновить описание Parent с id = 5, новое описание исходит от пользователя:

Parent parent = new Parent()
{
    Id = 5, // I already know the user Id
    Description = "new description from User";
    Children = null; // I don't want the children to be changed
}

dbContext.Parent.Attach(parent);
dbContext.Entry(parent).State = EntityState.Modified;
dbContext.SaveChanges();

Я не уверен, что это правильный подход? будет ли существующий Children удален (так как список детей пуст)?

1 Ответ

1 голос
/ 13 января 2020

возможно ли это?

Да , вы делаете правильно.

По вашему образцу

dbContext.Parent.Attach(parent);
dbContext.Entry(parent).State = EntityState.Modified;
dbContext.SaveChanges();

Это влияет только на parent таблицу.

...