Nhibernate id 生成器或 MySQL 自动递增

Nhibernate id generator or MySQL auto-increment

我刚刚开始我的冒险之旅,编写一个必须使用数据库的应用程序。我已经开始在 MySQL Workbench 中设计我的数据库,将这个项目导出到服务器,现在我想尝试编写一些代码,以便能够与该服务器通信。

我决定尝试使用 NHibernate,但我一直坚持为 Id/Primary 键 property/column 编写映射。我读过,我必须指定生成器,但这是否意味着我必须从数据库中的此列中删除自动增量?

如果对上一个问题的回答是否定的,那么哪个 NH 生成器将与服务器驱动的自动增量生成器一起正常工作。如果是肯定的,那么哪个发电机更可取?或者,即使 NH 可以与服务器的 AI 一起工作,您仍然建议从列中删除 AI 并使用基于客户端的生成器(再说一遍,哪个?)。

好吧,既然这个问题没有直接答案(有评论给了我答案),我想关闭它,我会写一个。

我的问题是对功能名称 - GENERATOR 的理解。当您有一个基于服务器的生成器(自动递增)时,为什么您的应用程序中还需要另一个?那是我错误的根源。其实这个app generator不需要真正生成任何东西,它可以从数据库中获取数据,但是对于这个app来说,它仍然没有区别。

所以,长话短说;博士 正如@RadimKöhler 在他对我的问题的评论中所写, nativeidentity 都可以很好地与数据库中的 autoincrement/identity (或数据库引擎使用的任何名称)列一起使用。

现在,报价时间:

NOTE: I for years live with identity.. but if I could choose, sequence or HILO would be my choice. It does not require real INSERT to let DB generate the key...

...考虑一下:) 我没有走这条路,因为我正在编写一个小应用程序,大部分时间将由单个用户使用。使用实际的应用程序内生成器让您可以处理保存在内存中的数据,这些数据可以一次性刷新到数据库中。