nhibernate问题“无法在表中插入标识列的显式值”

时间:2011-05-05 02:30:05

标签: nhibernate nhibernate-mapping

我似乎对nHibernate和插入记录存在随机问题。

插入工作正常,然后添加了一个新表,并开始收到错误:

Cannot insert explicit value for identity column in table '' when IDENTITY_INSERT is set to OFF

现有表格插入现在也失败了。随机部分是,如果我删除我的文件,并重新签出,插入然后工作正常。

nHibernate版本是3.1

通过以下方式设置标识列:

[NHibernate.Mapping.Attributes.Generator(Class = "native")]
[NHibernate.Mapping.Attributes.Id(Name = "id")]
public virtual IdT id
{
    get { return _id; }
    set { _id = value; }
}

我尝试设置为“身份”,但仍然是一个问题。不确定是否存在缓存问题,但担心它可能会影响后期的功能。

1 个答案:

答案 0 :(得分:4)

遇到此错误。我立刻意识到这是一个身份问题。但我有自动增量设置。所以我检查了我的映射文件。我很快意识到:

    <id name="Id" access="property" column="`id`">
        <generator class="assigned" />
    </id>

必须是

    <id name="Id" access="property" column="`id`">
        <generator class="native" />
    </id>

注意: class =“native”