实体框架:使用POCO方法在SOA中更改跟踪

时间:2010-02-22 23:09:43

标签: wcf entity-framework soa poco change-tracking

在我们的分层应用程序中,我们通过WCF调用访问数据库。我们正在根据请求创建和处理上下文。我们也在使用POCO方法 我的问题是,在纯POCO模型(完全持久的无知POCO)中,是否有可能跟踪变化,而我们正在为每个请求创建和处理上下文(因为之前的上下文是在该服务调用中处理的)?如果是,EF如何处理这种情况?据我所知,2个机制(基于快照的变更跟踪和基于通知的代理变更跟踪)将无法处理这个问题?如果没有,我们应该如何处理上下文,以便我们能够跟踪变化?

3 个答案:

答案 0 :(得分:6)

我会说:

不要在纯SOA环境中使用自跟踪实体: 自我跟踪实体仅在您的客户使用时才有效 生成的代理类。

当你通过本书进行SOA时,你不能指望你的客户 成为.Net,甚至更多.Net 4.0;这是唯一的情况 其中自我跟踪实体将起作用。您的服务将是 对任何其他客户都没用。

只需2美分, 问候, 柯恩

答案 1 :(得分:3)

如果您能够与客户共享模型而不是使用由引用生成的元数据,则自我跟踪实体确实可以解决此问题。

摘要 STEs 并从客户端引用它们,您将可以访问与上下文断开连接的跟踪。

答案 2 :(得分:2)

很遗憾,您无法在Entity Framework v1.0中找到一个简单的解决方案。 已经有很多discussion而且分辨率很低。这是EF v1.0的许多已知问题之一,你最终不得不编写很多代码来处理这个问题。

在.NET 4.0中,ADO.NET团队引入了Self-Tracking Entities来解决这个问题。