8

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

4

3 回答 3

5

我会说:

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

当您按照书本进行 SOA 时,您不能期望您的客户是 .Net,甚至更多的是 .Net 4.0;这是自跟踪实体可以工作的唯一场景。您的服务对任何其他客户都毫无用处。

只是我的 2 美分,问候,Koen

于 2010-05-07T11:22:22.083 回答
3

如果您能够与客户端共享模型而不是使用参考生成的元数据,那么自跟踪实体确实可以解决这个问题。

提取STE并从客户端引用它们,您将可以访问与上下文断开的跟踪。

于 2011-07-21T16:22:22.733 回答
2

不幸的是,您在 Entity Framework v1.0 中找不到简单的解决方案。有很多讨论和很少的解决方案。这是 EF v1.0 的许多已知问题之一,并且您最终将不得不编写大量代码来处理此问题。

在 .NET 4.0 中,ADO.NET 团队引入了自我跟踪实体来解决这个问题。

于 2010-02-23T23:42:32.897 回答