我使用MYSQL的NHibernate映射的代码,并有如下映射:
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‘,否则使用已经设置为10的Id。
我在网上查了一下,得到了这个link (自定义Id生成器),但它是Java + Hibernate的。我不知道如何在C#的NHibernate mapping by code中转换它。
发布于 2015-09-25 04:31:49
在Hiberante中,您可以用另一种方式定义用法。例如,您可以这样定义
@GeneratedValue(strategy=GenerationType.IDENTITY)属性从数据库中获取自动增量。
发布于 2015-09-30 11:47:22
您需要的是将您的Id定义从Native更改为Assigned。
Id(x => x.Id,map.Generator(Generators.Assigned);=> { map.Column("ID");map });
https://stackoverflow.com/questions/32769484
复制相似问题