c# - NHibernate手动设置id自动递增

标签 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_INCRMENT 生成它的 id。但在某些情况下我想手动设置 id (Id=10) 。我如何更改映射,如果 Id=0 则使用“AUTO_INCRMENT”,否则使用已设置的 Id(即 10)。

我在互联网上查了一下,得到了这个link (自定义 Id 生成器)但适用于 Java + Hibernate。我不知道如何在 NHibernate mapping by code 中将其转换为 C#

最佳答案

在 Hiberante 中,您可以使用使用的注释进行定义。例如,您可以定义这个

@GeneratedValue(strategy=GenerationType.IDENTITY)

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

关于c# - NHibernate手动设置id自动递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32769484/

相关文章:

c# - `Could not load file or assembly ' Microsoft.Windows.Shell`, Prism - C#

c# - 为什么我们需要将对类库项目继承的程序集的引用添加到消费者项目中?

php - 无法使用 HostGator (PHP) 连接到 Mysql 数据库

java.net.ConnectException : Connection refused: connect: localhost 异常

java - 错误: Hibernate could not initialize proxy - no Session

hibernate - 在 Hibernate 教程中使用 Maven

c# - 在构造函数中使用 'this' 关键字

c# - LDAP:枚举组织单位用户

mysql - 使用多个内部选择重构 MySQL 查询以加入

mysql - 通过多个相互关联的表进行 SQL 查询