wcf - EF4 POCO : Snapshot vs Self-tracking over WCF

标签 wcf entity-framework poco snapshot self-tracking-entities

去年,我使用 Entity Framework (当然是 .NET3.5)为我们的项目开发了一个数据访问服务,并使用 Julie Lerhman 的书作为指南开发了状态跟踪 POCO 对象。我们使用 WCF 并且还有 Silverlight 3 客户端。我们正在转向 .NET 4.0,我想改用代码生成来消除编写 POCO 类和翻译类的开发人员时间浪费。

通过我所做的研究,似乎有 3 种状态跟踪 POCO 的方法:

1)更改跟踪代理:似乎对我们没有用,因为这似乎不适用于 WCF 序列化。

2)基于快照:在检索 POCO 实体图时拍摄快照,将从客户端返回的图与该快照进行比较并比较差异......对我来说似乎很好。

3) 自跟踪实体:代码生成器生成用于在 POCO 对象内进行自跟踪的逻辑。这似乎与我们现在所做的很接近,只是它都是为我们生成的。

我试图找出所有这些方法之间的优缺点。我猜测 1 和 2 是“连接的”,并且他们需要最初查询 POCO 的 ObjectContext 以保持实例化,但无法确认这一点。我也没有看到任何人会真正打扰选项 1 的原因,因为选项 3 似乎做了同样的事情,而且更多......

快照对我来说似乎是最简单的,但是如果这需要 ObjectContext 长时间保持打开状态,我不太确定......

我只是一个初级程序员,所以这里的任何建议,特别是关于 Silverlight 3(我相信选项 2 和 3 与 Silverlight 3 一起工作,但 2 可能有问题)非常感谢。

最佳答案

选择选项 3。自跟踪实体,因为这就是它们的设计目的。

“自跟踪实体针对序列化场景进行了优化”

This post给出了很好的示范。

关于wcf - EF4 POCO : Snapshot vs Self-tracking over WCF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2338661/

相关文章:

c# - 如何模拟 WCF 服务?

c# - 添加为服务引用时 WCF 消息协定缺少 header

c# - 获取异常 ""至少一个对象必须实现 icomparable""只有在将方法 ToList() 应用于 IQueryable<> 时

silverlight - RIA 未使用 RIA 和 Silverlight 加载子实体

frameworks - 使用部分类的 Entity Framework POCO 中的业务逻辑?

asp.net - WCF + REST,增加 MaxStringContentLength

wcf - 如何在单个 WCF <service> 中混合 WIF 和非 WIF 端点?

linq - 如何使用 Linq 连接对象和实体?

c++ - 如何将 C++14 标准要求从基于 POCO 的项目更改为 C++17

macos - 在 OS X 上安装 ROS2 - 错误 : No module named 'rclpy._rclpy'