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

本文关键字:数据 插入 SaveChanges WCF 服务 | 更新日期: 2023-09-27 18:21:25

我有一个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);
 }

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

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

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

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

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

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

不幸的是,现在已经太晚了,因为对象已经在这里反序列化了(我在反序列化阶段得到了异常)。