如何在Linq-to-SQL类上捕获Save或Load事件?

Sha*_*ica 5 c# linq linq-to-sql

我有一个Linq-to-SQL类,我想在将记录持久保存到DB之前执行一些预先保存验证.此外,一旦保存,我想要一些后保存处理代码.

同样,当删除一条记录时,无论来自何处,我都希望调用前后方法context.SubmitChanges().

我没有在生成的代码中看到任何可以覆盖的方法.部分方法OnValidate()可能足以进行预处理,但是如果不满足某些条件,我希望能够取消保存,并且我没有看到任何钩子进行后处理.

我错过了什么吗?或者你能推荐另一种达到预期效果的方法吗?

谢谢!

lep*_*pie 7

对于插入:

  1. 为您的实体创建基类.

  2. 添加一些虚拟方法.

  3. 覆盖DataContext.SubmitChanges.

  4. 调用DataContext.GetChangeSet()并迭代应用您之前定义的函数的插入.

要恢复更改,请查看我的扩展方法.