Nhibernate:在插入新记录时更新表中的所有现有记录

时间:2011-05-17 15:46:32

标签: nhibernate

我遇到了NHibernate的问题。我在NHibernate Profiler中发现了这个问题。当我尝试在表中插入新记录时它触发表中每条记录的更新语句。 就像我在插入数据库中有1000条记录或更新其数据库中每条记录的触发更新语句一样。

这是我的样本 这是我的hbm文件和示例代码

                   

<property name="ParentCodeId" column="Parent_Code_ID" not-null="false" />
<property name="Code" column="Diagnostic_Code" not-null="false" />
<property name="Descr" column="Description" not-null="true" />
<property name="Level" column="Level" not-null="true" />
<property name="CreatedBy" column="Created_By" not-null="true" />
<property name="CreatedDate" column="Created_Date" not-null="true" />
<property name="ModifiedBy" column="Modified_By" not-null="false" />
<property name="ModifiedDate" column="Modified_Date" not-null="false" />
<property name="IsActive" column="Is_Active" not-null="true" />

var repository = this.DomainObjectRepositoryFactory.Create<DiagnosticCodeRepository, DiagnosticCode>();
repository.BeginTransaction();
diagnosticCode.Id = data.DiagnosticCodeId;
diagnosticCode.ParentCodeId = data.ParentCodeId;
diagnosticCode.Code = data.Code;
diagnosticCode.Descr = data.Descr;
diagnosticCode.IsActive = data.IsActive;
diagnosticCode.Level = data.Level;

// save Diagnostic code
id = repository.Save(diagnosticCode);
repository.Commit();

任何想法?

由于 姆兰

1 个答案:

答案 0 :(得分:0)

diagnosticCode是新对象吗?

我不知道这是不是你的问题,但如果你将对象拉出数据库,进行更改,然后保存它,你可能会有更好的运气。您不必手动设置对象的id属性。

相关问题