如何解决EF中的条件更新
| 我与许多人之间有1关系,并且想要检查更新范围内的业务规则。 例如,具有以下情况: 第一个表包含组,第二个表包含学生。还有一条业务规则说:“我们的系统中“一个小组最多可以容纳10名学生”。 我们需要检查更新或事务范围内的规则,因为代码中的预验证不能保证规则的执行。 没有EF中的自定义脚本,是否可以在WHERE条件下进行UPDATE? 在EF中进行这种验证的最佳方法是什么?解决方法
不,您不能将这样的WHERE条件包括在EF中的UPDATE语句中。此外,这是典型的业务规则验证,在数据库层中几乎没有超出范围。您应该建立一种机制,仅允许单个客户端修改组。客户端将加载一个组(=锁定)以更改学生数并尝试保存该组。由于该组仅由单个客户端锁定,其他任何人都不能修改内容,并且可以在保存组并释放锁定之前自由检查学生数。创建这种锁定机制的最简单方法是添加LockedBy和LockedDate列。为了避免无限锁定,您可以使用某些条件,将比X早的锁定视为已过期。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。