1

我正在使用实体框架,当我在表中插入或更新行时,我想执行其他操作。不仅是来自数据库的存储过程,还有代码中的实际函数——最好是基于事件的。(异步执行)这两种情况都应该触发向处理程序发送一些消息或以其他方式启用函数的执行。

1) 创建

var Row = DbContext.Table.GetById(Id);    
Row.SomeColumn = newValue;
DbContext.SaveChanges();

2) 更新

var Row = new Row(valOfColumn1, ...);
DbContext.Table.AddObject(Row);
DbContext.SaveChanges();

在你回答之前

在执行当前更新和插入时查找位置不包括将来的使用,这些使用应始终与上述额外功能的执行相关联。

建立一个应该始终使用专用功能创建或更新表不是一种选择,因为我需要假设人们不会意识到使用提到的额外功能的必要性。

4

1 回答 1

0

从此答案中,您可以将事件处理程序添加到ObjectStateManager

var contextAdapter = ((IObjectContextAdapter)dbcontext);            
contextAdapter.ObjectContext
          .ObjectStateManager
          .ObjectStateManagerChanged += ObjectStateManagerChanged;
于 2013-11-05T14:08:08.620 回答