当我更新(刷新)从数据库nHibernate检索到的记录列表中的一条记录时,将对原始列表中的所有记录进行版本控制。

从数据库中检索记录列表:

using(UnitOfWork.Start())
{
   queuedJobs = aJobServiceManager.GetAllJobs().Where(aJob => aJob.Status == PricingStatus.QUEUED).ToList();
}

/* Do some work on the record*/
using(UnitOfWork.Start())
{
   //aJob is a record from queuedJobs.
   aJobServiceManager.Save(aJob);
   //When Flush is called I'm expecting only aJob to be updated in the database.
   //aJob is correctly updated BUT
   //All the other records in queuedJobs are also updated (their version field is incremented).
   UnitOfWork.Current.Flush();
}

为什么nHibernate在没有更改的情况下更新所有记录,并且如何停止这种行为?

最佳答案

这很可能是您遇到的问题:http://nhibernate.info/blog/2008/10/20/how-test-your-mappings-the-ghostbuster.html

这将有助于查看您的映射文件以供工作。如果您正在做类似的事情

<property name="Status" type="int" />

Status实际上是StatusEnum的地方,您最终会产生重影。

关于NHibernate更新未更改的记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3247188/

10-11 01:36