Nhibernate id生成器或MySQL自动递增

时间:2018-04-26 09:56:38

标签: mysql nhibernate

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

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

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

1 个答案:

答案 0 :(得分:0)

好的,因为这个问题没有直接答案(有评论给了我答案)而且我想关闭它,我会写一个。

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

所以,TL; DR 正如@RadimKöhler在他对我的问题的评论中写道,nativeidentity都适用于数据库中自动增量/身份(或数据库引擎使用的任何名称)列。

现在,报价时间:

  

注意:我多年来都有身份认同..但如果我可以选择,序列或HILO将是我的选择。它不需要真正的INSERT来让DB生成密钥......

...想一想:)我没有这样做,因为我正在编写一个小应用程序,大部分时间都会由单个用户使用。使用实际的应用内生成器,您可以使用保存在内存中的数据,这些数据可以一次性刷新到数据库中。