如果我想使用实体框架 4 作为我的数据层,并且想通过 WCF 或其他机制将我的实体发送到另一层,然后希望能够更新实体并将它们发送回去以进行更新/删除/插入最好使用自跟踪实体还是 poco 对象?
如果可能,我宁愿使用 POCO 对象,因为如果可能的话,我不想依赖其他层中的实体框架,但我不知道将 POCO 重新连接到上下文有多么困难。
如果我想使用实体框架 4 作为我的数据层,并且想通过 WCF 或其他机制将我的实体发送到另一层,然后希望能够更新实体并将它们发送回去以进行更新/删除/插入最好使用自跟踪实体还是 poco 对象?
如果可能,我宁愿使用 POCO 对象,因为如果可能的话,我不想依赖其他层中的实体框架,但我不知道将 POCO 重新连接到上下文有多么困难。
这是太多问题的组合,其中大多数问题已经在 SO 上提出:
使用 STE 不会使您的上层依赖于 EF,但如第二个链接中所述,STE 并不是每个应用程序的解决方案。STE 还有一些其他限制,例如即使在服务器端也不能使用延迟加载,当上下文中已经存在相同键中的实体时,不能应用更改等。
使用 POCO 和 WCF 意味着您将使用分离的实体,并且您将不得不说出 EF 发生了什么变化。这在更新单个实体的情况下可能很简单,也可以仅更新单个实体的某些字段,但是在更新实体图时这可能非常复杂,尤其是当您可以删除客户端上的关系时(在这种情况下是最简单的方法是首先加载实体图并将传入的更改合并到附加的实体)。