实体框架与自跟踪实体与 POCO

发布于 2024-11-09 15:37:05 字数 186 浏览 4 评论 0原文

如果我想使用实体框架 4 作为我的数据层,并希望将我的实体发送到另一层,无论是通过 WCF 还是其他机制,然后希望能够更新实体并将它们发回以进行更新/删除/插入最好使用自跟踪实体还是 poco 对象?

如果可能的话,我宁愿使用 POCO 对象,因为如果可能的话,我不想依赖其他层中的实体框架,但我不知道将 POCO 重新连接到上下文有多困难。

If i'm wanting to use entity framework 4 as my data layer and want to send my entities to another tier whether it be via WCF or another mechanism and then want the ability to update the entities and send them back for updating/deleting/inserting is it best to use self-tracking entities or poco objects?

I'd rather use POCO objects if possible because i don't want to depend on the entity framework in the other layers if possible but i don't know how difficult it is to reconnect POCOs to the context.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏天碎花小短裙 2024-11-16 15:37:05

这是太多问题的组合,其中大多数问题已经被问到:

使用 STE 不会使您的上层依赖于 EF,但如第二个链接 STE 中所述并不是适用于所有应用的解决方案。 STE 还有一些其他限制,例如即使在服务器端 你不能使用延迟加载,你当上下文中已经存在相同键的实体时,无法应用更改

使用 POCO 和 WCF 意味着您将使用分离的实体,并且您必须说EF 发生了什么变化。如果更新,这可能很简单单个实体,也可以仅更新单个实体的某些字段,但这可以是更新实体图时非常复杂,特别是当您可以删除客户端上的关系时(在这种情况下,最简单的方法是先加载实体图,然后将传入的更改合并到附加实体)。

This is combination of too many questions and most of them were already asked on SO:

Using STEs will not make your upper layer dependent on EF but as described in second link STEs are not solution for every application. STEs have some other limitations, for example even on server side you cannot use lazy loading, you cannot apply changes when entity in the same key already exists in the context, etc.

Using POCOs and WCF means that you will work with detached entities and you will have to say EF what has changed. This can be simple in case of updating single entity and it is also possible to update only some fields from single entity but this can be very complex when updating the entity graph especially when you can delete relations on the client (in such case the easiest way is to load the entity graph first and merge incoming changes to attached entities).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文