2
我有一个主列作为ID的表。但是这一列不是一个身份专栏。所有的值都明确提供。我们可以停止自动递增的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的值。
问题是连贯NHibernate认为ID映射为自动增量列,但在数据库中ObjectTypeId不是一个标识列,这就是为什么插入语句没有得到任何值并引发空错误。
有没有一种方法可以告诉列是ID列,但其值不是自动递增的?
在此先感谢
感谢那是什么我想要的。 我是新来的,仍然在探索它。 – Ashish 2010-01-11 11:02:01
没问题。它实际上有点帮助我了解XML映射,或者至少了解它们。你会发现Fluent的等价物有相似的名字,但并不总是被记录在案。 – 2010-01-11 11:18:09