【发布时间】:2013-12-06 05:21:22
【问题描述】:
不确定这是一个简单的问题还是一个 EF 问题。我有一个包含插入/删除/更新的 SaveChanges 映射。我有涉及多个实体和它们之间的关系的业务规则验证,因此在我知道所有更改之前我无法进行完整的验证。在客户端执行相同的验证逻辑,但我在服务器上重新验证。
我正在寻找的是某种方式来应用完整的 sql 批更新,但在提交事务之前,我想进行验证以查看整个更改集是否有效。如果没有,那么我回滚。当然,验证必须在与更新相同的上下文/事务中完成,因此我可以访问更改。
我已经在 BeforeSaveEntities 中进行了验证,但这更多的是安全检查,(此用户可以更新此记录吗)。那简单明了。
包含客户记录和 1 个或多个地址记录,和/或 1 个或多个联系人记录的更改集示例业务规则:如果客户被分配到行业 A,那么它必须恰好有 1 个地址编码为“主要”,并且该地址必须至少有 1 个与之关联的联系人。
尝试通过评估现有状态和完整的更改集来进行验证似乎需要大量工作并且容易出错。可能有多个地址/联系人被添加、删除或更新。在应用了所有更新之后,在提交之前,它可以通过一个简单的 SQL 选择很容易地完成。
这甚至可能吗?我有哪些选择? 谢谢
【问题讨论】:
标签: validation frameworks transactions entity breeze