更新父实体而不更改子实体

问题描述 投票:0回答:1

我有一对多的关系...我在Web环境(断开连接的环境)中工作。假设用户只想更新父实体,而不必加载所有子实体,这可能吗?

这是代码:

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; }
}

我想更新id = 5的Parent的描述,新的描述来自用户:

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(因为子级列表为空)?

c# entity-framework entity-framework-6
1个回答
0
投票

可能吗?

是],您做得对。

根据您的样品

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

仅对parent表有效。

© www.soinside.com 2019 - 2024. All rights reserved.