我刚刚开始我的冒险与写一个应用程序,必须与数据库工作。我已经开始在mysql workbench中设计我的数据库,将这个项目导出到服务器,现在我想尝试编写一些代码,可以与这个服务器进行对话。
我已经决定尝试使用nhibernate,但是我一直在为id/主键属性/列编写Map。我已经读过,我必须指定生成器,但这是否意味着,我必须从数据库的这个列中删除auto increment?
如果对上一个问题的回答是否定的,那么哪个nh生成器将与服务器驱动的自动增量生成器一起正确工作。如果是正的,那么哪个发电机更好?或者,即使nh可以使用服务器的ai,您仍然建议从列中删除ai并使用基于客户机的生成器(再说一遍,哪个?)。
1条答案
按热度按时间bd1hkmkf1#
好的,既然这个问题没有直接的答案(有评论给了我答案),我想结束它,我就写一个。
我这里的问题是对名称生成器功能的理解。如果你有一个基于服务器的生成器(自动增量),为什么你的应用程序中还需要另一个呢?那是我犯错误的根源。实际上,这个应用程序内生成器不需要真正生成任何东西,它可以从数据库中获取数据,但是对于这个应用程序来说,它没有什么区别。
所以,tl;radimk医生ö赫勒在对我的问题的评论中写道
native
以及identity
可以很好地处理数据库中的autoincrement/identity(或者数据库引擎使用的任何名称)列。现在,报价时间:
注:我多年来一直以身份生活。。但如果我能选择,序列或hilo将是我的选择。它不需要真正的插入让数据库生成密钥。。。
... 想想看:)我没有这么做,因为我正在编写一个小应用程序,大多数时间都是由单个用户使用。使用实际的应用程序内生成器,可以处理内存中保存的数据,这些数据可以一次性刷新到数据库中。