使用NHibernate的SQL Server Identity列 - 使用或不使用

dra*_*fly 7 sql-server nhibernate

我正在使用SQL Server,并且大多数表都具有int类型的标识列.而现在,我刚刚看到一本书,它告诉我们使用这种机制并不是一个好主意.使用NHibernate作为ORM时使用标识列的缺点是什么?

Chr*_*cht 5

我不是NHibernate专家,但就我所知,使用标识列会破坏UnitOfWork并导致额外的数据库往返.

Fabio Maulo (当时是NHibernate的项目负责人,我不确定他是否还在今天)有一篇博文,他详细解释了这一点:
身份:永无止境的故事

这是另一篇(更长篇)博客文章,其中包含示例代码:
NH2.1.0:生成器行为解释

但请注意,这两篇博客文章大约有三年的历史,并且谈论的是NH 2.1.0,截至目前的版本是NH 3.3.但我认为Fabio所描述的问题至今仍然存在.