首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NHibernate手动设置自动递增的id

NHibernate手动设置自动递增的id
EN

Stack Overflow用户
提问于 2015-09-25 03:32:37
回答 2查看 2K关注 0票数 0

我使用MYSQLNHibernate映射的代码,并有如下映射:

代码语言:javascript
复制
Id(x => x.Id, map => { map.Column("ID"); map.Generator(Generators.Native); });

和数据库如下所示:

代码语言:javascript
复制
ID int not null AUTO_INCREMENT

我之所以使用Generators.Native,是因为数据库将通过AUTO_INCREMENT生成它的id。但在某些情况下,我想手动设置id (Id=10)。如何更改映射,如果为Id=0,则使用'AUTO_INCREMENT‘,否则使用已经设置为10的Id

我在网上查了一下,得到了这个link (自定义Id生成器),但它是Java + Hibernate的。我不知道如何在C#NHibernate mapping by code中转换它。

EN

回答 2

Stack Overflow用户

发布于 2015-09-25 04:31:49

在Hiberante中,您可以用另一种方式定义用法。例如,您可以这样定义

代码语言:javascript
复制
@GeneratedValue(strategy=GenerationType.IDENTITY)

属性从数据库中获取自动增量。

票数 0
EN

Stack Overflow用户

发布于 2015-09-30 11:47:22

您需要的是将您的Id定义从Native更改为Assigned。

Id(x => x.Id,map.Generator(Generators.Assigned);=> { map.Column("ID");map });

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32769484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档