我有一个WCF数据服务(OData),它可以作为更大系统的数据存储库。我正在尝试根据对存储库中实体的操作来启动特定方法。
具体来说,如果有人更改Message
记录,我想挂钩管道。我正在使用ChangeInterceptors
。
他们适用于Add
和Delete
。但是,更新实体时不会触发任何内容。我担心DbContext
无法解决实体发生变化的事实,因为请求是无状态的。
这不会触发处理程序:
var whatever = from m in Messages
where m.MessageKey == 3
select m;
whatever.First().UpdatedDate = DateTime.Now;
this.SaveChanges();
还有其他人遇到过这个问题吗?
答案 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();