我有一个包含集合的分离对象。我正在使用此代码附加它
EntityEntry dbEntityEntry = _context.Entry<T>(entity);
dbEntityEntry.State = EntityState.Modified;
如果我更改大部分字段,分离的对象会完美保存。问题出在该对象的集合上。集合上的更改不会持久化。我已经看到执行的查询,它只触及“主”表。所有的依赖关系都没有更新
有什么方法可以为分离的对象更新整个树?
最佳答案
问题:
EF 不知道已更改的 collection
或 navigation properties
。通过将 dbEntityEntry
的状态设置为 EntityState .Modified
,EF只知道对象dbEntityEntry
发生了改变。这意味着 EF 将只更新 dbEntityEntry
而不是它的 navigation properties
。
解决方案:
您可以遍历当前 dbEntityEntry
的所有集合(或导航属性)
,并将实体状态设置为 EntityState.Modified
。
另一种解决方案:请也看看。可能对您有所帮助。
关于c# - 如何使用 EF Core 中的集合更新分离对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39177331/