2012-03-06 103 views
0

我已经暴露实体框架工作的DbContext的POCO实体WCF(没有跟踪启用),并通过我的客户,当我试图更新家长和相关entieis的组合。只有父实体被更新,但子实体未被更新。实体框架4.1跟踪父/子实体,而不STE

我在尝试一些东西,如...客户有一个或多个客户地址实体。在我的客户中,我添加了新客户地址,删除了现有客户地址,并更新了现有客户地址并修改了客户对象iteslf中的一些内容。现在,我想一次更新这些更改。

目前,它只更新客户而忽略其余。

我下的印象是,与EF 4.1更改跟踪capablity已得到改进,我们就可以用了STE(自身跟踪实体)达致这。我的假设是正确的? DBContext可以吗?任何帮助或指示?

回答

1

编号EF更改跟踪仅针对附属实体跟踪更改。如果您将实体序列化并将其发送到其他地方,则不再进行跟踪。它将成为您的WCF客户端上的分离场景和you are responsible for telling EF what changes happened。如果你只是附加实体并将父母状态设置为修改,那么它将完成这一操作 - 它只会更新父项,因为你没有告诉它其他项已经改变。

因此,要么从客户端发送有关修改实体的附加信息,并在保存更改之前将每个实体或关系设置为正确状态,或从数据库加载当前状态(当前父级和子级)并将其与从客户端接收的状态合并。