|
|
1
0
NHibernate不知道约束(并且首先很难强制实施唯一的约束),因此处理这一问题很大程度上取决于您。我认为您使用查询来检查值是否不存在的做法是正确的,但正如您所提到的,这就留下了另一个进程/线程首先插入值的可能性。该方法的解决方案是排他锁,但当然,您必须考虑该锁的含义。我不知道NHibernate的锁定方法是如何工作的,但是如果它们不能提供您所需要的,您可以随时访问连接并使用原始SQL。 |