我有一个使用MS SQL Server运行几个月的Web应用程序,其中包含一个已填充的数据库。
问题是我使用Increment
来生成ID。随着负载的增长,出现了问题:由于Increment
的不安全多线程而导致的主键冲突。我读了几篇文章,我认为迁移到Identity
似乎是一个合理的选择。
我可以安全地这样做吗?如果我只是替换
会发生什么 Id(m=>m.ID).GeneratedBy.Increment();
与
Id(m => m.ID).CustomSqlType("int IDENTITY(1,100000)");
NHibernate会自动更新数据库架构吗?它会起作用吗?我应该注意哪些其他警告?