我有以下模型:
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);
}
答案 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
。