如何在WCF数据服务中的SaveChanges之前捕获插入的数据

时间:2015-11-11 11:20:44

标签: c# wcf-data-services

我有一个WCF数据服务,可以访问我的一个表,如下所示:

public static void InitializeService(DataServiceConfiguration config)
 {
      // TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc.    
      config.SetEntitySetAccessRule("Data", EntitySetRights.All);
 }

我没有任何插入方法,客户端发送带有数据的发布请求,数据服务完成插入(默认模式)。

不幸的是,传入的数据有一些数据类型错误,因此我应该捕获它并在发生任何SaveChanges之前更改

我怎么能这样做?是否有任何方法可以覆盖来获取传入的对象?

1 个答案:

答案 0 :(得分:0)

好吧,您可以使用ChangeInterceptor机制,添加以下代码:

[ChangeInterceptor("Data")]
public void OnChangeData(Data data, UpdateOperations updateOperation)
{
  if (updateOperation == UpdateOperations.Add)
  {
     //do your job
  }
}

对我来说不幸的是,为时已晚,因为此处的对象被反序列化(我在反序列化阶段得到了异常)。