我正在尝试将断开连接的实体附加并添加到 Entity Framework 上下文。例如:
我有一个客户实体和一个用于详细说明订单实体的导航属性。这个想法是获取 Customer 实体并对该实体进行修改,然后还将新的 Order 实体添加到 Customer 实体。
当我尝试附加(我认为这是正确的使用方法。)客户实体时,问题就开始了。因为现在正在附加整个对象图,所以我收到以下错误:
"An object with a temporary EntityKey value cannot be attached to an object context."
据我所知,该错误是由于添加的订单实体导致的,这些实体应该添加,而不是附加。
有没有办法将具有新子实体的现有实体附加或添加到上下文?
最佳答案
如果您想以这种方式使用 Attach
,则不应使用基于 EntityObject
的实体 - 请改用 POCO。无论如何,您仍然必须遍历整个对象图并为每个实体和独立关联设置正确的状态(修改、添加、删除)。归根结底attaching detached object graph is very hard即使使用 POCO - 最好的方法不是附加图表,而是从数据库加载相同的数据,并将分离的图表与加载的图表同步(您必须自己编码)。
关于asp.net - Entity Framework 4.0 附加对象图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9374842/