【问题标题】:WCF Data Services: ChangeInterceptor not firing for UpdateWCF 数据服务:ChangeInterceptor 未触发更新
【发布时间】:2013-04-03 22:47:23
【问题描述】:

我有一个 WCF 数据服务 (OData),它用作大型系统的数据存储库。我正在尝试根据对存储库中实体的操作来触发特定方法。

具体来说,如果有人更改了Message 记录,我想挂接到管道中。我为此使用ChangeInterceptors

他们为AddDelete 工作。但是,更新实体时不会触发任何内容。我担心DbContext 无法解决实体已更改的事实,因为请求是无状态的。

这不会触发处理程序:

var whatever = from m in Messages
where m.MessageKey == 3
select m;

whatever.First().UpdatedDate = DateTime.Now;
this.SaveChanges();

还有其他人遇到过这个问题吗?

【问题讨论】:

    标签: wcf wcf-data-services odata


    【解决方案1】:

    所以,我试图使用 AttachTo() 来处理我的记录被分离的事实。这完全不起作用,并导致运行时异常,如下所示:

    此操作要求实体是实体类型,并且至少有一个键 属性.参数名称:实体

    无论如何,只要使用更新方法,更改就会被拦截(并实际应用)

    var whatever = (from m in Messages where m.MessageKey == 1
    select m ).Single();
    
    whatever.UpdatedDate = DateTime.Now;
    this.UpdateObject(whatever);
    this.SaveChanges();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多