我相信,如果您使用 linq 或 .Find 命令加载数据库对象,那么调用中也包含的子集合将自动将项目添加到 changetracker 并保存它们:
entity.Children.Add(entityChild);
这会将它添加到附加实体的更改跟踪器中就好了。
但是,如果您正在创建一个新实体,并且在构造函数上将 ICollection 设置为新的 HashSet(),则在执行 Children.Add(entityChild) 行时它不会添加到更改跟踪器中。
您如何为新对象初始化 ICollections,以便在添加到子对象时将其添加到更改跟踪器?
而且我认为如果您添加了父级(即创建父级,添加子级然后将父级添加到 DbSet 也应该将子级添加到更改跟踪器中,那么它也应该将所有新的子级添加到更改跟踪器中吗? )
谢谢!