当多个用户访问应用程序时,应用程序不应允许插入重复列(例如:用户表中名称唯一的名称列)。
我是怎么做的,在按钮点击事件中,我正在检查db中是否存在该名称。这显示验证错误(如果存在)(重复);当单个用户访问应用程序时,这非常有效。
但是,当2个用户同时插入具有相同列名的行(用户)时,它允许插入具有相同名称的记录,因为当第一个用户的请求到达db以检查该名称是否已存在时,第二个用户的记录(尚未插入重复名称)。
所以,没有显示验证。
如何解决nhibernate会话中的这个问题?。我可以使用锁定吗? 请建议。
答案 0 :(得分:1)
您应该在数据库上使用唯一约束来强制执行此操作。然后,在提交插入事务时,您应该捕获约束违规的错误。这是数据库擅长的事情之一。