c# - 如何使用 EF Core 中的集合更新分离对象?

标签 c# entity-framework entity-framework-core

我有一个包含集合的分离对象。我正在使用此代码附加它

EntityEntry dbEntityEntry = _context.Entry<T>(entity);
dbEntityEntry.State = EntityState.Modified;

如果我更改大部分字段,分离的对象会完美保存。问题出在该对象的集合上。集合上的更改不会持久化。我已经看到执行的查询,它只触及“主”表。所有的依赖关系都没有更新

有什么方法可以为分离的对象更新整个树?

最佳答案

问题:

EF 不知道已更改的 collectionnavigation properties。通过将 dbEntityEntry 的状态设置为 EntityState .Modified,EF只知道对象dbEntityEntry发生了改变。这意味着 EF 将只更新 dbEntityEntry 而不是它的 navigation properties

解决方案:

您可以遍历当前 dbEntityEntry 的所有集合(或导航属性),并将实体状态设置为 EntityState.Modified

另一种解决方案:请也看看。可能对您有所帮助。

Working with Self-Tracking Entities

关于c# - 如何使用 EF Core 中的集合更新分离对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39177331/

相关文章:

c# - 英孚。连接未关闭。连接的当前状态是 connecting

c# - Uri规范化压缩FTP方案

c# - Task<T> 异步导致 Xamarin.iPhone (MonoTouch) JIT 错误?

c# - 使用 Exchange Web 服务发送 "Auto-Accepted"约会

c# - (C#) 数据 GridView : How to get Selected Count with cells AND rows?

asp.net - 使用内存对 .ToListAsync() 进行单元测试

entity-framework - Entity Framework 外键对象上的空引用

c# - 如何获取当前日期和时间?

c# - 在 EF 上下文中使用 appsettings.json 配置

c# - ElementAtOrDefault 的替代方案