在实体框架核心 2.0 中,我在Post和之间有很多关系Category(绑定类是PostCategory)。当用户更新 a 时Post,整个Post对象(及其PostCategory集合)被发送到服务器,在这里我想重新分配新收到的集合PostCategory(用户可以通过添加新类别和删除一些类别来显着更改此集合)。我用来更新该集合的简化代码(我只是分配了全新的集合):var post = await dbContext.Posts .Include(p => p.PostCategories) .ThenInclude(pc => pc.Category) .SingleOrDefaultAsync(someId);post.PostCategories = ... Some new collection...; // <<<dbContext.Posts.Update(post);await dbContext.SaveChangesAsync();这个新集合的对象与先前集合中的对象 ID 相同(例如,用户删除了一些(但不是全部)类别)。由于,我得到一个例外:System.InvalidOperationException:无法跟踪实体类型“PostCategory”的实例,因为已跟踪具有相同 {'CategoryId', 'PostId'} 键值的另一个实例。如何有效地重建新集合(或简单地分配一个新集合)而不会出现此异常?
1 回答
- 1 回答
- 0 关注
- 124 浏览
添加回答
举报
0/150
提交
取消