WCF数据服务:ChangeInterceptor未触发更新

时间:2013-04-02 19:23:36

标签: wcf wcf-data-services odata

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

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

1 个答案:

答案 0 :(得分:0)

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

  

此操作要求实体属于实体类型,并且至少有一个密钥   property.Parameter name:entity

无论如何,只需使用更新方法,即可截获(并实际应用)

var whatever = (from m in Messages where m.MessageKey == 1
select m ).Single();

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