实体框架4.1跟踪没有STE的父/子实体

时间:2012-03-06 07:01:06

标签: entity-framework-4.1

当我尝试更新Parent和相关entieis的组合时,我已将实体框架工作DBContext的POCO实体暴露给WCF(没有启用跟踪)并通过我的客户端。仅更新父实体,但不更新子实体。

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

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

我的印象是,使用EF 4.1,改变跟踪功能已得到改善,我们可以通过STE(自我跟踪实体)实现这一点。我的假设是正确的? 可以使用DBContext吗?任何帮助或指示?

1 个答案:

答案 0 :(得分:1)

没有。 EF更改跟踪仅跟踪附加实体的更改。如果您序列化实体并将其发送到其他地方,则不再进行跟踪。它在WCF客户端上变为分离方案和you are responsible for telling EF what changes happened。如果您只是附加实体并将父状态设置为修改它将完全执行 - 它只会更新父项,因为您没有告诉它其他任何已更改。

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