按照惯例,我们的DB只允许使用INSERT,UPDATE和DELETE的存储过程.对于某些表/类型,没有DELETE存储过程,因为不允许删除行.(您只能将此类型的状态更新为"已删除").例如,客户可能被标记为已删除但从未真正从数据库中删除.
如何防止在DMBL中的数据访问层=中对某些类型使用Delete()?
插入和更新的"默认方法"映射到相应的存储过程.但对于Delete,它说"使用运行时".我想把它设置为"不允许".
有没有办法在DB模型层实现这一目标?
非常感谢
为每个这样的实体实现一个部分类,并实现OnValidate部分方法.它将ChangeAction作为参数.当ChangeAction是ChangeAction.Delete时,抛出一个异常,指示不允许该操作(可能是IllegalOperationException).