当我保存对象时,NHibernate尝试将对象保存在ID = 0的数据库中

时间:2020-09-26 08:06:44

标签: c# nhibernate

我有NHibernate --version 2.1.2.4000,并使用NHibernate.Mapping.Attributes

当我想要保存对象时,

               3
              / \
             /   \
            /     \
           /       \
          /         \
         /           \
        /             \
       /               \
      5                 2
     / \               / \
    /   \             /   \
   /     \           /     \
  1       4         6       7
 / \     / \       / \     /
8   9   /   \     /   \   14
       10   11   12   13

我有一个例外情况“当IDENTITY_INSERT设置为OFF时,无法在表'Car'中为身份列插入显式值。” 当NHibernate尝试设置ID = 0的sql脚本时,就会发生这种情况

session.SaveOrUpdate(car);
session.Flush(); 

我的课具有以下属性

"exec sp_executesql N'INSERT INTO Car (...., Id) VALUES (.., @p12)',N'...,@p12 int', @p12=0 go"

休眠助手具有以下设置

public class Car: ILifecycle {
    [Generator(Class = "identity")]
    [Id(0, Name = "Id", Column = "Id")]
    public virtual int Id { get; set; }  
    public virtual LifecycleVeto OnDelete(ISession s);
    public virtual void OnLoad(ISession s, object id);
    public virtual LifecycleVeto OnSave(ISession s);
    public virtual LifecycleVeto OnUpdate(ISession s);
}

1 个答案:

答案 0 :(得分:0)

我忘记了属性前面的数字。[Generator(1,Class =“ identity”)]

相关问题