在阅读了自定义 EFContextProvider并实现它之后,我仍然试图找出执行服务器端验证的最佳方法以及如何在保存之前应用业务规则......也就是说,我的问题围绕着 2 种方法应该是被覆盖:
protected override bool BeforeSaveEntity(EntityInfo entityInfo) { //}
protected override Dictionary<Type, List<EntityInfo>> BeforeSaveEntities(Dictionary<Type, List<EntityInfo>> saveMap) { // }
我知道文档指定“在调用 BeforeSaveEntities 方法之前,将为每个实体调用 BeforeSaveEntity 方法”一次。此外,我的问题围绕在具有特定领域关系的多个实体上验证/应用业务规则而不必验证单个实体的属性(为此,我相信自定义验证可以按照此处的说明工作)
所以我的问题是:
- 如何从服务器返回验证错误?一旦我应用了业务规则,如果它们失败了,我如何向一个或多个实体添加验证错误?
- 如何传递某种验证上下文,以便服务器端代码“知道”要应用哪些业务规则?我的应用程序可以在几个不同的地方添加新客户,并且根据应用程序上下文,应该应用业务规则或者它应该是可选的。例如,如果有明确的“添加新客户”屏幕和“打印检查”屏幕,允许“即时”创建新客户(在这种情况下,必须检查更多规则)。这可能不是理想的设计,但它是必需的。很少有其他地方也可以创建客户......虽然在服务器端,我没有得到这个“上下文”来决定如何应用(以及以何种顺序)业务规则......此外,
谢谢Z...