如果我想使用实体框架4作为我的数据层,并希望将我的实体发送到另一层,无论是通过WCF还是其他机制,然后希望能够更新实体并将其发回以进行更新/删除/插入是否最好使用自我跟踪实体或poco对象?
如果可能,我宁愿使用POCO对象,因为如果可能的话,我不想依赖其他层中的实体框架,但我不知道将POCO重新连接到上下文是多么困难。
答案 0 :(得分:8)
这是太多问题的组合,其中大部分问题已经在SO上被问到:
使用STEs不会使您的上层依赖于EF,但如第二个链接中所述STE不是每个应用程序的解决方案。 STE有一些其他限制,例如甚至在服务器端you cannot use lazy loading,您在上下文中cannot apply changes when entity in the same key already exists等等。
使用POCO和WCF意味着您将使用分离的实体,您将不得不说EF已更改的内容。对于updating single entity,这可能很简单,update only some fields from single entity也可以这样,但这可能是very complex when updating the entity graph,尤其是当您可以删除客户端上的关系时(在这种情况下,最简单的方法是首先加载实体图并将传入的更改合并到附加的实体中。