我们可以阻止 ID 列自动递增吗?
我有一个以主列作为 ID 的表。但该列不是标识列。所有值均明确提供。
下面是我的映射类
public ObjectTypeMap()
{
Table("OBJECTTYPE");
Id(x => x.ObjectTypeId);
Map(x => x.Title).Not.Nullable();
Map(x => x.Description);
}
,但是当我尝试使用 session.save 保存此对象时,出现错误,提示
“无法将 NULL 值插入到表“DiscoveryWEBTest.dbo.ObjectType”列“ObjectTypeId”中;列不允许为空值。 INSERT 失败。\r\n该语句已终止。”
但在我的对象中,我提供了 ObjectTypeId 的值。
问题是 Fluent NHibernate 将 ID 映射视为自动增量列,但在数据库中 ObjectTypeId 不是标识列,这就是 insert 语句没有获取任何值并抛出 null 错误的原因。
有没有一种方法可以告诉我该列是 ID 列,但它的值不是自动递增的?
提前致谢
I have a table with primary column as an ID. But that column is not an identity column. All the values are provided explicitly.
Below is my mapping class
public ObjectTypeMap()
{
Table("OBJECTTYPE");
Id(x => x.ObjectTypeId);
Map(x => x.Title).Not.Nullable();
Map(x => x.Description);
}
but when I try to save this object using session.save, I get an error saying
"Cannot insert the value NULL into column 'ObjectTypeId', table 'DiscoveryWEBTest.dbo.ObjectType'; column does not allow nulls. INSERT fails.\r\nThe statement has been terminated."
But in my object I am providing the value of ObjectTypeId.
The problem is Fluent NHibernate considers ID mapping as auto-increment column, but in the database ObjectTypeId is not an identity column thats why the insert statement do not get any value and throws null error.
Is there a way with which I can tell the the column is an ID column but its value is not auto-incremented?
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
像这样映射它:
Map it like this: