我有一个Linq- to -SQL类,我想在将记录持久化到DB之前执行一些预保存验证。此外,一旦它被保存,我希望有一些保存后的处理代码。
同样,当一条记录被删除时,我希望有前方法和后方法被调用,不管context.SubmitChanges()
是从哪里调用的。
我在生成的代码中看不到任何可以覆盖的方法。对于预处理来说,部分方法OnValidate()
可能就足够了,但是我希望能够在不满足某些条件的情况下取消保存,并且我根本看不到任何用于后期处理的挂钩。
我是不是遗漏了什么?或者你能推荐另一种达到预期效果的方法吗?
谢谢!
发布于 2009-04-30 10:00:12
抛出异常将有效地取消更改...不过,可能有点苛刻。
另一个扩展点是覆盖数据上下文上的SubmitChanges
,以获取挂起的更改(GetChangeSet
),执行任何最终更改(可能是审计),然后调用base.SubmitChanges
。您可以将任何保存后操作放在此之后(使用保存之前获得的更改集)。
https://stackoverflow.com/questions/806202
复制相似问题