Nhibernate:插入新记录更新表中的所有现有记录
问题描述:
我遇到了NHibernate的问题。我在NHibernate Profiler中发现了这个问题。当我尝试在表中插入新记录它触发表中每条记录的更新语句。 就像我在数据库中有1000条记录插入或更新数据库中每条记录的触发更新语句一样。Nhibernate:插入新记录更新表中的所有现有记录
这里是我的样品 这是我的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();
任何想法?
感谢 伊姆兰
答
是diagnosticCode
一个新的对象?
我不知道这是否是您的问题,但如果您将对象拉出数据库,进行更改并保存,您可能会有更好的运气。您不需要手动设置对象的id属性。
你应该发布一些代码才能更好地理解 – 2011-05-17 15:49:07
你可以显示触发的更新语句吗? – psousa 2011-05-18 09:11:25