父模型更新时未更新的子模型列表

时间:2018-09-04 15:02:21

标签: c# entity-framework

我有以下模型:

public class GroupSetCollection {
    int Id { get; set; }
    string Name { get; set; }
    List<GroupSet> GroupSets { get; set; }
}

public class GroupSet {
    int Id { get; set; }
    string Name { get; set; }
    List<Group> Groups{ get; set; } 
}

每当我更新GroupSetCollection时,除GroupSets以外的所有属性都会更新。当我手动调用GroupSet上的更新时,它给我以下错误。

  

附加类型'GroupSet'的实体失败,因为另一个类型相同的实体已经具有相同的子主键值。

下面是我用来更新实体的方法。 它在GroupSet更新时失败,并且在GroupSetCollection更新中正常工作。

public void UpdateGroupSetCollection(GroupSetVM groupSetCollection)
        {
            _GroupSetCollectionService.Update(VMToEntity(groupSetCollection));
            _GroupSet.Update(groupSetCollection.GroupSets);

        }

2 个答案:

答案 0 :(得分:1)

加载相关实体的方法有很多,其中一种是将单词virtual添加到相关实体。

因此,您的最后一堂课将是:

public class GroupSetCollection {
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual List<GroupSet> GroupSets { get; set; }
}

您还可以从官方文档中了解Loading Related Entities

答案 1 :(得分:0)

感谢@JesusPocoata帮助我弄清楚了这个问题。

完成操作后,我没有将List<GroupSet>设置为virtual