我们可以阻止ID列自动递增吗?

时间:2010-01-11 10:25:54

标签: fluent-nhibernate

我有一个主列作为ID的表。但该列不是标识列。所有值都是明确提供的。

下面是我的映射类

 public ObjectTypeMap()
    {
        Table("OBJECTTYPE");
        Id(x => x.ObjectTypeId);
        Map(x => x.Title).Not.Nullable();
        Map(x => x.Description);
    }

但是当我尝试使用session.save保存此对象时,我收到错误消息

“无法将值NULL插入列'ObjectTypeId',表'DiscoveryWEBTest.dbo.ObjectType';列不允许空值.INSERT失败。\ r \ n语句已终止。”

但在我的对象中,我提供了ObjectTypeId的值。

问题是Fluent NHibernate将ID映射视为自动增量列,但在数据库中ObjectTypeId不是一个标识列,这就是为什么insert语句没有获取任何值并抛出null错误。

有没有一种方法我可以告诉该列是一个ID列,但它的值不会自动递增?

提前致谢

1 个答案:

答案 0 :(得分:7)

像这样映射:

Id(x => x.ObjectTypeId).GeneratedBy.Assigned();