0

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

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

4

1 回答 1

0

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

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

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

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

whatever.UpdatedDate = DateTime.Now;
this.UpdateObject(whatever);
this.SaveChanges();
于 2013-04-03T14:47:23.927 回答