WCF数据服务:在保存时处理对象

时间:2011-01-05 17:50:29

标签: wcf entity-framework entity-framework-4 wcf-data-services

我们正在使用WCF数据服务来代理我们的数据服务器端,并让第三方轻松访问我们的数据。事情的服务器方面相对容易。另一方面,客户方面正在为我们提供契合。

我们正在从常规实体框架转换为数据服务,并且我们已经创建了一个程序集,其中包含与数据服务通信的生成的客户端对象(通过服务引用)。这些类是部分的,所以我们为它们添加了一些逻辑和扩展属性。这一切都很有效。

我们遇到的问题是我们需要在节省时间处理我们的对象,因为他们需要在通过网络发送之前进行一些高级序列化。 DataServiceContext类包含两个事件:WritingEntity和ReadingEntity。 ReadingEntity事件实际上发生在我们正确的时间(对象后反序列化)。 WritingEntity事件发生在我们错误的时间(后对象序列化)。

在将对象写入请求之前是否有任何方法可以捕获对象,以便我们可以在即将编写的实体上调用方法?

显然我们可以遍历实体列表,寻找任何未处于Unchanged或Deleted状态的实体,并在那里调用相应的方法......但是这需要我每次都想要添加特殊代码在上下文中调用SaveChanges。这可能是我们需要做的,但是如果有一种方法可以在将实体写入XML以便发送到服务之前捕获实体,那就太好了。

1 个答案:

答案 0 :(得分:0)

目前,DataServiceContext中没有挂钩来执行您想要的操作。我能想到的最接近的是你建议的所有实体走路和发现修改过的那些方法。您可以在上下文类中使用类似SaveChanges的方法(也是部分)来完成此操作。