由 Increment() 在单个 SessionFactory 中生成线程安全



我的应用程序使用

Id(x => x.Id).GeneratedBy.Increment();

用于生成主键。我读过几篇关于Increment的文章,我现在很担心:所有这些文章都说Increment集群使用时很危险。但是,没有集群,它是一个具有单个SessionFactory实例的常见 Web 应用程序。但是,有些并发线程都共享相同的SessionFactory

我应该担心吗?什么对象为新创建的实例提供其主键值?是线程安全的SessionFactory,还是不安全的Session

查看源代码,IncrementGenerator类的Generate()方法使用 MethodImpl 属性和 MethodImplOptions.Synchronized 选项进行修饰。这表明对该方法的访问是同步的,因此是线程安全的。

相关内容

  • 没有找到相关文章

最新更新