NHibernate手动设置自动增量的id

时间:2015-09-24 19:32:37

标签: c# mysql hibernate nhibernate fluent-nhibernate

我正在使用NHibernate代码与MYSQL进行映射,并且映射如下: -

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

和数据库如下: -

ID int not null AUTO_INCREMENT

我使用Generators.Native因为数据库会按AUTO_INCREMENT生成其ID。但我想在某些情况下手动设置ID (Id=10)。如何更改映射,如果Id=0然后使用'AUTO_INCREMENT',则使用已设置为Id的10。

我在互联网上查看了link(自定义ID生成器)但Java + Hibernate。我不知道如何将NHibernate mapping by code转换为C#

2 个答案:

答案 0 :(得分:0)

在Hiberante中,您可以定义使用的anotation。例如,您可以定义此

@GeneratedValue(strategy=GenerationType.IDENTITY)

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

答案 1 :(得分:0)

您需要的是将您的ID定义从原生更改为已分配。

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